SSH パスフレーズ 省略したい!~ config 設定するか Keychain 登録自動化するか ~
🌼 はじめに
SSH接続の度にパスフレーズ入力するのめんどくさい!と思って、SSHキーパスフレーズ省略設定した方法を共有します。
※Mac使ってることを前提としております
1. keychain に秘密鍵登録
Macユーザーならこのコマンドで秘密鍵を keychain に登録することでパスフレーズ省略することができます。
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
# ~/.ssh/id_ed25519 じゃなくて ~/.ssh/id_rsa の場合もあります
# macOS Monterey(12.0)から -K オプションは deprecated され、--apple-use-keychain に代替されたらしいですね
でも macOS Sierra(10.12.2)以降は再起動する度に毎回パスフレーズを聞かれるようになりました。普通にめんどいので、SSH パスフレーズ省略する方法を紹介します。
2. パスフレーズ省略
2-1. config 設定
一つ目の方法はconfig
ファイルでパスフレーズ聞かないように設定することです。
~/.ssh/
にconfig
ファイルがないなら新しく作成してください
touch ~/.ssh/config
以下の設定を追加してください
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
各オプションの詳細はman ssh_config
で見れるので自分で探してみましょう(^_^)
その後秘密鍵を keychain に登録します
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
これでもうパスフレーズ聞かれない!
2-2. Keychain 登録自動化
2つ目の方法は自分の Mac にログインする度に秘密鍵を Keychain に登録することを自動化する方法です。
原理は Mac ログインするとき実行されるファイルに Keychain に登録コマンドを入れとくことです。
それではどのファイルが Mac ログイン時に実行されるかですが、その辺はこちらの記事を参考にさせていただきました。
ログイン時に一回だけ実行されるファイルはzprofile
ということなので、それにコマンド登録します。
ローカルのzprofile
を作成します(既にある場合は省略)
touch ~/.zprofile
/etc/zprofile
はグローバルなので、ここにコマンド登録したらその Mac のすべてのユーザーがログインする度に走ることになります。まあ個人PCで他のユーザーが使うことがないなら特に問題ないかもしれませんが、スコープは狭くしといて悪いことはないのでローカルにします。
次は生成したファイルにキーチェーン登録コマンドを書き込みます。
echo 'ssh-add --apple-use-keychain ~/.ssh/id_ed25519' >> ~/.zprofile
ちゃんと入ってるか確認したいなら cat で確認しましょう。
cat ~/.zprofile
確認できたら.zprofile
ファイルを再読み込みします。
source ~/.zprofile
このようにIdentity added
が出てきたら成功!
Identity added: { 自分の秘密鍵パス }
PC再起動したらSSHキーパスフレーズ入力求められないのも確認できました。やった!
🌷 終わり
楽していきたい
Discussion