🍎

SSH パスフレーズ 省略したい!~ config 設定するか Keychain 登録自動化するか ~

2022/08/01に公開

🌼 はじめに

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 ログイン時に実行されるかですが、その辺はこちらの記事を参考にさせていただきました。

https://qiita.com/yuku_t/items/40bcc63bb8ad94f083f1
https://qiita.com/muran001/items/7b104d33f5ea3f75353f

ログイン時に一回だけ実行されるファイルは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キーパスフレーズ入力求められないのも確認できました。やった!

🌷 終わり

楽していきたい

GitHubで編集を提案

Discussion