在 KDE 上使用 ssh 和钱包

在 KDE 上使用 ssh 和钱包

如何使用带有 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)

  1. 安装 ksshaskpass(已经为我安装好了)

    sudo apt install ksshaskpass

  2. 创建自动启动脚本(以下为脚本内容)

    nano ~/.config/autostart-scripts/ksshaskpass.sh

  3. 添加执行权限并运行自动启动脚本

    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可以用来复制文件。

相关内容