まだssh-agentを直接使っているんですか?そろそろKeychain経由で使うようにしましょうよ。
Keychain=Macだと思っているみなさん、それは勘違いです。そのKeychainとこのKeychainは異なります。Fedora, UbuntuなどのLinuxにもありますよ。
keychainとは
.bashrcなどに
eval `ssh-agent`
と書いているとセッションを開くたびにプロセスが増えていってしまってうざいと思いますよね。別に体感で重くなったりはしないかもしれませんがうっとおしいです。
間に入ってそれを制御してくれるのがkeychainということです。
各種Linux(WSL1,2含む)で使えます。
※Windowsの場合はssh-agentのサービスがあるのでそれを使えばssh-addしたものは永続されます。
https://learn.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_keymanagement
※macの場合でも同じ感じでssh-agentを直接使うようです。
iCloud Keychain, Google Password Managerなどはクラウド経由でパスワード等を共有できますが、これとは異なります。
インストール
$ sudo apt install keychain
, $ sudo dnf install keychain
などで入れます。だいたいのディストリにはあるでしょう。
そして .bash_profileに追記しましょう。下のほうでいいです。
eval `keychain --eval --agents ssh ~/.ssh/hogehoge.ed25519`
古い eval ``ssh-agent``
は消してください。
確認
テスト用に適当に鍵を作ります。
murata@derorisnet:~$ ssh-keygen -t ed25519 -C 'iranai kagi' -f ~/.ssh/hogehoge_ed25519
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/murata/.ssh/hogehoge_ed25519
Your public key has been saved in /home/murata/.ssh/hogehoge_ed25519.pub
The key fingerprint is:
SHA256:RU4gOOY+CmPhsBPn/Di6s0/CxNs1GVFNUzQABpif3rs iranai kagi
The key's randomart image is:
+--[ED25519 256]--+
| o+++==*+ |
| o+ o. =. . |
| o.o. o |
|+.. .oo . |
|oO...+. S |
|Bo= +... |
|o*.= . . |
|.o+ . . |
|+*.. E. |
+----[SHA256]-----+
keychainに登録します。(.bash_profileに書いてもOK)
murata@derorisnet:~$ eval `keychain --eval --agents ssh ~/.ssh/hogehoge_ed25519`
* keychain 2.8.5 ~ http://www.funtoo.org
* Found existing ssh-agent: 440
* Adding 1 ssh key(s): /home/murata/.ssh/hogehoge_ed25519
Enter passphrase for /home/murata/.ssh/hogehoge_ed25519:
* ssh-add: Identities added: /home/murata/.ssh/hogehoge_ed25519
登録されているか確認します。
murata@derorisnet:~$ keychain -l
256 SHA256:RU4gOOY+CmPhsBPn/Di6s0/CxNs1GVFNUzQABpif3rs iranai kagi (ED25519)
murata@derorisnet:~$ ssh-add -l
256 SHA256:RU4gOOY+CmPhsBPn/Di6s0/CxNs1GVFNUzQABpif3rs iranai kagi (ED25519)
別セッション(タブなど)を開いて確認もしましょう。登録されていればOKです。
もちろんパスワードをかけた鍵ファイルでもOKです。1度目に入力確認されます。
で?
使い勝手は変わらないが、プロセスが1つになるのでssh-agentのプロセスがばかすか増えることはなくなるぞ。
WSL2とVScodeを使っていますが結局、WSL側とWindows側の両方に置いておく必要があるという点は変わらないですわ。。。
WSL2からWindowsのssh-agentを使う方法もあるみたいです。