[macOS General] SSH: 鍵作成とconfigによる複数ホストの管理

いつも忘れてしまうssh接続設定のメモ。

鍵の作成

RSA認証鍵を名前を指定して作成します。

$ ssh-keygen -t rsa -f sakura_rsa

この例では sakura_rsa と sakura_rsa.pub の2つができます。

ssh接続の設定

ssh接続の設定手順は「さくらのレンタルサーバでSSH公開鍵認証 | EzXNetwork」を参考にさせて頂きました。

公開鍵をサーバにscpする。

$ scp sakura_rsa.pub username@username.sakura.ne.jp:/home/username/.ssh/authorized_keys
username@username.sakura.ne.jp's password:
$ ssh username@username.sakura.ne.jp
username@username.sakura.ne.jp's password:パスワードを入力
Welcome to FreeBSD!
$ chmod 700 /home/username/.ssh
$ ls -al /home/username/
  drwx------    2 username  users   512 May 30 17:16 .ssh
$ chmod 400 authorized_keys
$ ls -al
  -r--------  1 username  users   415 May 30 18:06 authorized_keys
$ exit

以上でssh接続の設定は完了。

~/.ssh/config を設定する

~/.ssh/config で鍵の管理ができるとのこと。

ssh で鍵やユーザ名を複数のホストで使い分けないといけない場合、それら設定を覚えておくのは面倒です。
それらホスト毎の設定は ~/.ssh/config で簡単に管理することができます。
(中略)
鍵、ユーザ名、ssh バージョンなどを使い分けなければならない場合にとても便利です。
また、svn, git, scp, sftp などでの利用でも反映されるため、オプションを覚える必要がなくなります。

~/.ssh/config で簡単に複数ホストへのSSH接続を管理する – すぱぶろ

例えば上記のsakuraの設定であれば、config内にこのような内容を書けば良さそうです。

Host username.sakura.ne.jp
  UseKeychain     yes
  AddKeysToAgent  yes
  ForwardAgent    yes
  PreferredAuthentications publickey
  Hostname        username.sakura.ne.jp
  User            username
  Port            22
  IdentityFile    ~/.ssh/sakura_rsa

ssh接続は ~/.ssh/config の Host で指定した名前を使用します。

$ ssh username.sakura.ne.jp

補遺

ssh config

ssh agent

AddKeysToAgent, UseKeychain