Linuxとxfce4でSSH鍵のパスフレーズ入力を永続的に省略する

想定

 ssh接続先の認証にはパスフレーズではなく鍵認証が設定されていて、その鍵にパスフレーズを設定している。
ssh接続時にその鍵のパスフレーズを入力することなく接続できるようにする。

xfce4を使用している。

結論

 gnome-keyringとseahorseを使用する。
gnome-keyring 全てはこちらに書いてある。

手順

$ yaourt -S gnome-keyring libgnome-keyring seahorse

xfce4使ってる人は、以下を行う。

いくつかのディスプレイマネージャを使用していれば、自動でgnome-keyring-deamonを起動してくれるらしい。

そうでないstartxを使う環境など(.xinitrcを介する環境)は.xinitrcにこれを書く。

eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK

皆さん多分/usr/lib/seahorseは$PATHに追加していないと思うので、フルパスでseahorse-ssh-askpassコマンド打つ

$ /usr/lib/seahorse/seahorse-ssh-askpass path/to/ssh_key

あとは再起動して、いける。

動機

 sshの認証自体のパスフレーズ省略は.netrcを用いればできると思うけど、鍵の省略はできなかったんだよ〜。
逆に~/.ssh/configだと、IdentityFileで鍵の指定はできても、その鍵のパスフレーズは指定できなかったんだ。

難しいところ

 これを設定する必要があるのに気づかなかった。

 .xinitrcをxfce4セッションとして使うようにしてるんだけど、なんで.xinitrcに書いておくんじゃだめだったんだよ?
.xinitrcに書いておくと$SSH_AUTH_SOCKの値が/tmp以下になって、xfce4に上記設定をすると/run以下になるのは調べた。
うんこうんこちんこ。

筆者プロフィール

my-latest-logo

aiya000(あいや)

せつラボ 〜圏論の基本〜」 「せつラボ2~雲と天使と関手圏~」 「矢澤にこ先輩といっしょに代数!」を書いています!

強い静的型付けとテストを用いて、バグを防ぐのが好き。Haskell・TypeScript。