🦥
WSLでSSHキーを何度も求められないように設定する方法
はじめに
Windows Subsystem for Linux 2 (WSL2)環境を利用していると、WindowsリソースなどにアクセスしようとするときなどにSSHキーを求められることがあると思います。
それを公開キーなどを保存して一度通すことはできても、WSLを再起動するとまた求められるのが面倒なので、それを解消する方法を調べてまとめました。
念のため、そもそものSSHエージェントにキーを追加する工程から記載しています。
RSAを利用したキーの保存コマンド
WSL2では、SSHエージェントを使ってGitHubのSSHキーを保存し、Enter passphrase for key
の入力を省略することができます。
通常通りSSHエージェントにキーを追加する工程
-
WSL2ターミナルを開きます。
-
SSHエージェントを起動します。
eval $(ssh-agent)
-
SSHキーをエージェントに追加します。
ssh-add ~/.ssh/id_rsa
再起動後もSSHエージェントが有効な状態を維持するには
再起動後も有効な状態を維持するためには、~/.bashrc
や~/.zshrc
などのシェルの設定ファイルに以下の行を追加します。
# SSH_AGENT_PIDが空(エージェントが未起動)の場合のみエージェントを起動し、鍵を追加する
if [ -z "$SSH_AGENT_PID" ]; then
eval "$(ssh-agent -s)" >/dev/null 2>&1
ssh-add ~/.ssh/id_rsa
fi
これで、再起動してもSSHキーが有効な状態で保持されます。再起動後にSSHキーを再設定する必要はありません。
Ed25519用のコマンド
最近ではRSA
よりEd25519
が主流ですので、Ed25519
を利用したコマンドも記載します。
# SSH_AGENT_PIDが空(エージェントが未起動)の場合のみエージェントを起動し、鍵を追加する
if [ -z "$SSH_AGENT_PID" ]; then
eval "$(ssh-agent -s)" >/dev/null 2>&1
ssh-add ~/.ssh/id_ed25519
fi
Discussion