SSH vol.2

Linux インストール

ソフトインストール

sudo インストール

  • 参考
  • root ユーザーになる
    • % su -
  • ソフトインストール
    • # apt install sudo
  • sudoしたいユーザーを追加
    • adduser <username> sudo
  • /etc/sudoers ファイルを編集して、権限の設定を行う
    • # visudo
    • 以下を追記
    • <username> ALL=(ALL:ALL) ALL # hogeはroot権限を全て利用できる
  • root ユーザーを抜ける
    • # exit
  • sudoなしで、OS再起動コマンドを入力し、エラーメッセージが表示されることを確認
    • % shutdown -r now
  • sudo 実行で OS が再起動されればOK
    • % sudo shutdown -r now

vim インストール

  • % sudo apt install vim

SSH 接続

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! とエラーが出た

  • 手順に沿って作業を進め、ssh-keygen して認証鍵を作成し、ssh-copy-id で公開鍵を Linux 側に送ろうとしたところ、下記のエラーが出た
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ERROR: @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

SSHでは初回接続時に接続先ホストの公開鍵を保存しておき、次回接続時にホスト鍵を比較して前回と同じホストに接続したかを確認するような仕組みになっています。そのため、IPアドレスの振り直しやOS再インストールなどでホスト鍵が変わってしまった場合、次のようなエラーメッセージが出てSSH接続が失敗してしまいます。

この仕組みは中間者攻撃への対策として有用ですが、鍵の変更が意図通りであるような場合は大きなお世話だったりするわけです。
「SSHホスト鍵が変わってるよ!」と怒られたときの対処 - Qiita

  • ssh-keygen -R <ホスト名> で対処

上記エラーへの対処としては%HOME/.ssh/known_hostsの該当行を削除すれば同じエラーは出なくなります。これはエディタで削除してもいいのですが、下記のようにssh-keygenコマンドの-Rオプションで消すこともできます。

% ssh-keygen -R os3-325-52439.vs.sakura.ne.jp
# Host os3-325-52439.vs.sakura.ne.jp found: line 1
/Users/hoge/.ssh/known_hosts updated.
Original contents retained as /Users/hoge/.ssh/known_hosts.old
  • ただ、上記を実行してもエラーは解決しなかった
% ssh-copy-id hoge@os3-325-52439.vs.sakura.ne.jp             
/usr/bin/ssh-copy-id: ERROR: No identities found
  • だが、ssh-copy-id -i オプションで公開鍵を明示的に指定すれば無事解決した
% ssh-copy-id -i abc.pub hoge@os3-325-52439.vs.sakura.ne.jp
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "hoge.pub"
The authenticity of host 'os3-325-52439.vs.sakura.ne.jp (49.111.222.333)' can't be established.
ECDSA key fingerprint is SHA256:nfPQLfq1HA/ZUtrpEsUiyHDF74NC4cNryXDpAk2zpjo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'hoge@os3-325-52439.vs.sakura.ne.jp'"
and check to make sure that only the key(s) you wanted were added.
  • SSH 接続する
    • % ssh hoge@49.111.222.333
  • 無事につながる
  • パスワード認証を無効化する
% sudo vi /etc/ssh/sshd_config
...(省略)
#PasswordAuthentication yes
PasswordAuthentication no # noに変更
...(省略)
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no # noに変更
  • ssh を再起動

    • % sudo /etc/init.d/ssh restart
  • ポート番号変更
% sudo vi /etc/ssh/sshd_config
...(省略)
#Port 22
Port 55555 # ポート番号を書き換え
  • root ログインを禁止する
% sudo vi /etc/ssh/sshd_config
...(省略)
#PermitRootLogin yes
PermitRootLogin no # rootでのSSHログインを無効化
  • 設定ファイルの構文をチェックする
    • % sudo sshd -t
      • エラーが表示されなければOK
  • SSH の設定を反映
    • % sudo service sshd restart

SSH トラブルシューティング

  • パーミッション確認
% chmod 700 ~/.ssh
% cd ~/.ssh/
% chmod 600 authorized_keys
  • ping が通るかチェック
% hostname -I # IPアドレス取得
49.111.222.333
% ping 49.111.222.333
  • ファイヤーウォールの確認
sudo ufw status
Status: inactive

再確認

パスワード無し・鍵認証・22番ポート以外でログインに成功したとき

% ssh -i ~/.ssh/aaa hoge@49.111.222.333 -p 55551

rootでログインしようとして失敗したとき

% ssh root@49.111.222.333 -p 55551
% ssh root@49.111.222.333

22番ポートでログインしようとして失敗したとき

% ssh hoge@49.111.222.333 -p 22
% ssh hoge@49.111.222.333

以下のケースはそれぞれ記載した理由により、接続が拒否されている

  • ポート番号は合っているが、パスワード認証になるため接続拒否されている

% ssh hoge@49.111.222.333 -p 55551

  • 認証鍵になっているが、ポート番号がデフォルトの 22 番になっているため接続拒否されている

% ssh -i ~/.ssh/aaa hoge@49.111.222.333

Debianで zsh を使う

Debianでzshを使う | FJORD BOOT CAMP(フィヨルドブートキャンプ)

  • zshのインストール
    • % sudo apt install zsh -y
  • zshのPATHを確認する
% which zsh
/bin/usr/zsh
  • デフォルトシェルを変更する

    • % chsh -s /usr/bin/zsh
  • シェルを再起動したらzshになる
  • 設定ファイルは ~/.zshrc になる
  • 再起動したら以下のメッセージが出たので「2」を選択

    • 以降はプロンプトが $ から % になる
This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

(2)  Populate your ~/.zshrc with the configuration recommended
     by the system administrator and exit (you will need to edit
     the file by hand, if so desired).

--- Type one of the keys in parentheses --- 2
  • (q) 何もしない。次回はまたこのメッセージが表示される。
  • (0) 空白の ~/.zshrc ファイルだけを作って終了する。次回はこのメッセージは表示されない。
  • (1) メインメニューに行く。(意味不明)
  • (2) システムのおすすめ設定で ~/.zshrc を作成して終了する。

あとは、Mac 側の ~/.zshrc で設定した便利なエイリアスなどをそのままこちらにコピペすれば、Linux のコンソール環境が快適になる