如何使用带有 ssh 密钥的钱包?
我发现了许多不同的描述,我已经运行了 ssh-agent,我在以下位置添加了一个脚本Autostart/ssh-add.sh
:
#!/bin/bash
export SSH_ASKPASS=/usr/bin/ksshaskpass
/usr/bin/ssh-add ~/.ssh/id_rsa.2
/usr/bin/ssh-add ~/.ssh/id_rsa.3
添加该选项后,KDE 首次启动时,系统要求我输入解锁钱包的密码以及解锁文件的密码。我检查过,密码存储在钱包中。
但是,当我从命令行运行 ssh 时,仍然要求我输入 ssh 帐户的密码。
有什么想法我可以检查或更改什么吗?
答案1
这篇文章建议使用kssaskpass
:它在我的机器上运行良好™(Ubuntu 20.10)
安装 ksshaskpass(已经为我安装好了)
sudo apt install ksshaskpass
创建自动启动脚本(以下为脚本内容)
nano ~/.config/autostart-scripts/ksshaskpass.sh
添加执行权限并运行自动启动脚本
chmod +x ~/.config/autostart-scripts/ksshaskpass.sh
~/.config/autostart-scripts/ksshaskpass.sh
系统提示我输入所有 SSH 密钥密码(勾选“记住每个密码”),打开 KWallet Manager 后,我可以看到它们被逐一添加到钱包中。
这是我的版本~/.config/autostart-scripts/ksshaskpass.sh
:
#!/bin/bash
export SSH_ASKPASS='/usr/bin/ksshaskpass'
# loop through all RSA private keys (change this if you need to)
for i in ~/.ssh/*_rsa; do
ssh-add $i < /dev/null
done
答案2
你可以用它SSH_ASKPASS
来告诉 ssh 使用什么方法来提供答案。例如,我使用 keychain 来管理我的密钥,所以我这里有一个脚本:
~/.config/autostart-scripts/ssh-add.sh
和:
/usr/bin/keychain --eval --agents ssh --inherit any mykey
这mykey
是公钥。在我看来,给它们命名很有用。
下次登录时,KDE 将要求您解锁密钥,并且该密钥在会话的剩余时间内有效。
答案3
以下是我使用 RSA 密钥连接远程机器的方法:
您可能首先需要运行它 - 您可以跳过它,因为您已经有密钥了 - 这只会创建一个密钥:
ssh-keygen -t rsa
回答它提出的所有问题 - 您只需按即可Enter,但建议使用密码,尽管我还没有用桌面密钥钱包测试过。
然后您需要将其导出到远程机器 - 您需要USERNAME
指定IP_ADDRESS
:
cat .ssh/id_rsa.pub | ssh USERNAME@IP_ADDRESS 'cat >> .ssh/authorized_keys'
cat .ssh/id_rsa.pub | ssh USERNAME@IP_ADDRESS 'cat >> .ssh/authorized_keys2'
然后你需要做的就是测试它:
ssh <USERNAME>@<IP_ADDRESS>
你应该不会收到密码提示(除非设置),因为它似乎在一台机器上运行不安装了桌面环境,它也可以在 KDE 中工作
注意:
并且正如评论中指出的,ssh-copy-id
可以用来复制文件。