2021年10月2日

腰を据えてssh-agent問題に取り組む。

問題。

WSL2のUbuntuでssh-agentを立ち上げる。

eval `ssh-agent`

すると、ssh-addが出来るようになる。しかし、一度ターミナルを閉じてもう一度開くと、ssh-agentは生きているのにssh-add出来なくなる。

$ pidof ssh-agent
95
$ ssh-add
Could not open a connection to your authentication agent.

だもんで面倒だから.zshrc

eval `ssh-agent`

って書いてて、毎回起動してたんだけど、そうすると当然こうなる。

$ pidof ssh-agent                                                                                                   
32173 31548 31344 31137 29020 28832 27947 27740 27248 27156 22731 22181 21753 21580 20882 19950 19721 18981 18612 18466 17212 16870 16678 16613 16482 15297 14260 13290 12988 12923 12591 12089 12084 11110 10915 10581 10386 10155 10036 9839 9505 9131 8890 7440 6796 6345 5675 5404 5147 4812 4709 3981 3679 3416 3378 3200 2907 2455 2065 1870 1433 952 279 95

これはなんとかしないといけない。

この記事に解決策があった。

まずは不要なプロセスを全部殺す。いちいち殺すの面倒なので、PowerShellから以下を実行。

wsl --shutdown

次にWSL2のUbuntuで、まずkey-chainを入れる。

sudo apt-get install keychain

keychainを使う。

/usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa

ここでパスフレーズを聞かれるので入力。

すると、$HOME/.keychainにシェルスクリプトが出来るので、それを実行する。

source $HOME/.keychain/$HOST-sh

あとはこれで接続の度にssh-addしなくて良くなった。よしよし。

記事にも書いた。