Ubuntu 的 SSH 私钥可以通过命令行使用,但不能通过 Remmina 使用

Ubuntu 的 SSH 私钥可以通过命令行使用,但不能通过 Remmina 使用

我一直在想为什么我不能使用 SSH 工作Remmina SSH 客户端在 Ubuntu 12.10 环境中,我可以使用 openssh 服务器从命令行连接我的服务器,如下所示:

ssh -i privatekey.pem username@hostIP

用这种方法一切都很好。

但现在我想将远程桌面会话连接到同一台服务器,但我需要通过 SSH 隧道连接。无论如何,我在服务器上运行 xrdp,我将通过 SSH 隧道使用 RDP 进行连接,我正在使用 Remmina 远程桌面程序来执行此操作。但首先我只想使用 Remmina SSH 来确保它正常工作。 但它不起作用! 每次我尝试连接时都会收到此错误:

SSH public key authentication failed: Public key file doesn't exist

Remmina 中针对 SSH 的设置非常简单:

host
username
indentity file (privatekey.pem)

有人知道为什么 SSH 在命令行中可以工作,但在 Remmina 中却无法工作吗?这是 Remmina 中的错误吗?还是我遗漏了什么?

谢谢!

答案1

似乎您还需要指定公钥:

https://github.com/FreeRDP/Remmina/issues/92

“身份文件”似乎指定了私钥。

答案2

我无法使用 Johannes 的公钥建议来实现这一点,但我能够通过将身份验证选项更改为“公钥(自动)”,然后启动 ssh-agent 并通过 ssh-add 添加我的私钥,让 Remmina 连接到我的远程主机。

为了简化命令行内容,我将其添加到我的 .bashrc 中:

#
# Start up ssh-agent if it's not running
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
  eval `$SSHAGENT $SSHAGENTARGS`
  trap "kill $SSH_AGENT_PID" 0
else
  echo SSH Agent running
fi
#
# Add my private key
if [[ -z `ssh-add -L | grep mykey.pem` ]]; then
       ssh-add ~/.ssh/mykey.pem
fi

相关内容