SSHはリモート先と暗号化された通信を使って、安全に通信を行うためのプログラムです。例えば、GitHubに公開鍵を登録すれば認証にSSHを使い、通信にもSSH経由にするということが出来ます。
macOSには標準でクライアントプログラムがインストールされているので、すぐに使い始めることが出来ます。この記事では使い始めるための最初の設定方法を解説します。
秘密鍵と公開鍵を生成する
sshの鍵を生成するには次の様に操作します。
- ssh-keygenを使って鍵を生成する。
# [email protected]は任意。何の鍵なのかが分かるようにコメント $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
- 保存先を設定する。デフォルトのままでOK
- パスフレーズを設定する。任意のパスフレーズを入力
鍵のバックアップと復元
バックアップした鍵を復元するときや、事前に作成してある鍵を別のマシンに設定するときなどは以下の様にします。
-
id_rsa
と
id_rsa.pub
を
~/.ssh
ディレクトリにコピーする。
- パーミッションを設定する。
$ chmod 600 ~/.ssh/id_rsa
手順2のパーミッションの設定を行わないと、誰でも読める状態になっているので使用するときにエラーになります。
ssh-agentに鍵を登録
ssh-agentは、SSHを使って認証を行う時に便利なプログラムです。あらかじめ秘密鍵を登録しておくと、公開鍵で認証を行う時にパスフレーズの入力が不要になります。ssh-agentに秘密鍵を登録するには、ターミナルで次のようにします。「-K」オプションはパスフレーズをキーチェインに保存するというオプションです。
また、macOSの場合は ~/.ssh/config に以下の設定を先に書いておく必要があります。
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa
# ssh-agentを起動 $ eval "$(ssh-agent -s)" # 秘密鍵を登録。パーミッションが間違っていると、ここで弾かれる $ ssh-add -K ~/.ssh/id_rsa # 登録できると次の様に表示される Identity added: /Users/akira/.ssh/id_rsa (/Users/akira/.ssh/id_rsa)