如何在 gnome-keyring 中保存 SSH 密钥密码?

如何在 gnome-keyring 中保存 SSH 密钥密码?

我想在 gnome-keyring 中保存 SSH 密钥密码,然后在需要时自动使用它。

这个怎么做?

答案1

如果gnome-keyring-daemon已经在运行,您可以使用ssh-add将密钥添加到服务中:

ssh-add /path/to/private/key

例如:

ssh-add ~/.ssh/id_rsa

答案2

要保存密码,请使用seahorse-ssh-askpass包中的内容seahorse

cd $HOME/.ssh
/usr/lib/seahorse/seahorse-ssh-askpass my_key

确保公钥是私钥的文件名加上.pub,在示例中my_key.pub

要随后自动使用密钥,请参阅“Gnome 密钥环对话框和 SSH”并在第一次使用时,选中“每当我登录时自动解锁此密钥”。

答案3

如果您正在使用gnome 密钥环守护进程但是一个ssh代理不受密钥环管理,您仍然可以手动将密码存储在密钥环中并使用秘密工具(通过apt install libsecret-tools)和一个预计apt install expect将密钥添加到代理时的脚本(通过):

# Save passphrase to keyring via same format used by seahorse-ssh-askpass
# only required if entry does not already exist in the keyring
secret-tool store --label="Unlock password for: id_ed25519" unique "ssh-store:/home/$USER/.ssh/id_ed25519"

# Load key into ssh agent
FILE="/home/$USER/.ssh/id_ed25519"
PASS=$(secret-tool lookup unique ssh-store:$FILE)
/usr/bin/expect <(echo "
spawn ssh-add $FILE
expect \"Enter passphrase for $FILE\"
send -- \"$PASS\n\"
expect eof")

# Results should look like:
Enter passphrase for /home/username/.ssh/id_ed25519: 
Identity added: /home/username/.ssh/id_ed25519 ([email protected])

答案4

确保您的私钥(例如mykey)和mykey.pub公钥(例如 )存储在该~/.ssh目录中。然后它会自动加载。

来自 Gnome Keyring 文档(自动加载 SSH 密钥):

SSH 代理会自动加载 ~/.ssh 中的文件,这些文件具有相应的 *.pub 配对文件。可以通过 ssh-add 命令手动加载和管理其他 SSH 密钥。

相关内容