我想在 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 密钥。