--- ---
Skip to content

KDE WalletにSSH鍵のパスワードを保存する

SSH鍵のパスワードをKDE Walletに持たせると,毎回入力する手間を省くことができます.

この記事では,SSH Agentの設定と,パスワードをKDE Walletに保存する設定を説明します.

この記事の内容は概ね SSH Keys - ArchWikiKDE Wallet - ArchWiki に倣っていますので,よくわからないところがあればそちらも参考にしてください.

前提

手順

SSH Agentの自動起動

systemdからSSH Agentを自動起動するように設定します.

次のようにssh-addコマンドを実行してエラーが表示されなければ, ssh-agentが既に設定されていますので,この項は飛ばしてください.

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

まず,次のコマンドを実行して,ssh-agent.serviceを有効化・起動します (この際,sudoをつけてはいけません).

systemctl --user enable ssh-agent
systemctl --user start ssh-agent

systemctl --user status ssh-agentで,正常に起動したことを確認してください.

次に,ssh-add等からSSH Agentを使えるようにするため,起動時に環境変数を設定するようにします. .config/environment.d/ssh_auth_socket.confを任意のエディタで開き(個人的にはnanoがおすすめですが何でも構いません), 次の内容を書き込んでください.

SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/ssh-agent.socket"

最後に,設定を反映させるため,一度ログアウトしてからもう一度ログインしておいてください.

再ログインすると,ssh-addが使えるようになっているはずです.

KDE WalletにSSH鍵のパスワードを保存する

(ArchWikiには起動時にssh-addを実行するよう書かれていますが,毎回パスワードを聞かれてしまうので,当記事では行いません.)

起動時に環境変数を設定するようにするだけです. ~/.config/environment.d/ssh_askpass.confをエディタで開き,次の内容を書き込んでください.

SSH_ASKPASS='/usr/bin/ksshaskpass'
SSH_ASKPASS_REQUIRE=prefer

使用時に自動でssh-addするよう設定する

~/.ssh/configをエディタで開いてください.

Host github.com
    IdentityFile ~/.ssh/id_ed25519

このような設定項目が見えると思いますので, SSH Agentを使いたいHostに対して,次のようにAddKeysToAgent yesを追記してください.

Host github.com
    IdentityFile ~/.ssh/id_ed25519
    AddKeysToAgent yes

鍵を使う

最初にその秘密鍵を使うときにパスワードを聞かれますので, パスワードを入力し,Remember passwordにチェックを入れて OKを押してください.

Ksshaskpassのパスワード入力画面.パスワードを入力するテキストボックスとRemember passwordのチェックボックス等がある.

これで次回からは聞かれなくなります.

VSCodeで使えるようにするには追加の設定が必要ですので, こちらも参照してください.

まとめ

この記事ではssh-addを自動で行う設定はしませんでした. これをすると,KDE Walletにパスワードを保存していたとしても, 起動時に毎回パスワードを聞かれることになります.

その代わりとしてAddKeysToAgent yesを設定しています.

AddKeysToAgent yesは,最初に秘密鍵を使ったときにSSH Agentにも追加されるようにするものです.

以下,ssh_config(5) — Linux manual pageより抜粋.

AddKeysToAgent

Specifies whether keys should be automatically added to a running ssh-agent(1). If this option is set to yes and a key is loaded from a file, the key and its passphrase are added to the agent with the default lifetime, as if by ssh-add(1).

執筆

phenylshimaのプロフィール画像
phenylshima phenylshima on GitHub

そのへんの大学生です.プロフィールについてはGitHubを見ていただければ…

最近よく使う言語はRustとTypeScriptです.Rustは書いていてたのしいので,よく採用します.