2023/01/30(月)UbuntuでSSHとGPGキーのパスフレーズを記憶させる
更新日:
投稿日:
投稿日:
毎回パスワードを聞かれるのは面倒なのでkeychainを使って記憶させる。
確認環境
WSL2
| Env | Ver |
|---|---|
| keychain | 2.8.5 |
| Ubuntu | 20.04.5 LTS |
実機
| Env | Ver |
|---|---|
| keychain | 2.8.5 |
| Ubuntu | 24.04.3 LTS |
手順
1. keychainのインストール
sudo apt install keychain
2. keychainの設定
.zshrcに次の行を追加。
keychain -q --nogui --agents ssh,gpg --quick <SSH秘密鍵のパス> <GPG鍵のkeyid>
GPG鍵のkeyidは以下で取得可能。
gpg --list-secret-keys --keyid-format=long
3. エージェント連携をシェル設定に書く
~/.keychain配下にホスト名でHOGE-shのようなファイルができているので、これを.zshrcから読み込む。内容的にはssh-agentとkeychainが疎通するための環境設定と思われる。
具体的には以下の内容を.zshrcに追記すればよい。
source $HOME/.keychain/`hostname`-sh
最終的な.zshrcの状態としては以下のようになっていればよい。
keychain -q --nogui --agents ssh,gpg --quick <SSH秘密鍵のパス> <GPG鍵のkeyid>
source $HOME/.keychain/`hostname`-sh
hostname-sh-gpgみたいなファイルも出来ているが私の環境ではこれを読み込むと上手く動かなかったので、このファイルは指定しないほうが良さそうに見えた。
トラブルシュート
GPGのキーが見つからないエラーが出る
- Warning: can't find DEADBEEF; skipping
上記が出た場合
~/.gnupg/gpg.confに対して以下の記述をすることで改善する可能性がある(この対策は不完全かもしれない
keyid-format LONG
GPGキーのパスフレーズのプロンプトがGUI側に出る
.zshrcに以下を追記するとCUI側に出るようになる。
export GPG_TTY=$(tty)
更新履歴
- 2026-01-21: エージェントとの連携設定が漏れていたのを追記
- 2026-01-19: Ubuntu実機で確認したので、その結果を記事に反映し、記事を読みやすく改良
2022/06/27(月)WSL2のUbuntuでSSHのパスフレーズを記憶させる
2021/03/11(木)Windowsで踏み台を使ったSSH接続の設定方法
更新日:
投稿日:
投稿日:
%HOMEPATH%.ssh\configに以下のように設定すると踏み台サーバーを経由したSSH接続が可能- 設定は踏み台には証明書認証があるが、宛先にはないケースを想定
ssh target-host.devとすると踏み台経由でアクセス可能ProxyCommandではssh.exeをフルパスで記述する必要がある
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host proxy.ssh-host.dev
HostName proxy.ssh-host.dev
User foo
IdentityFile C:\Users\user-name\.ssh\id_rsa
ForwardAgent yes
Host target-host.dev
Hostname target-host.dev
User bar
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -l %r -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null proxy.ssh-host.dev -W %h:%p