![可以通过 SSH 连接,但不能通过 x2go](https://linux22.com/image/607916/%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%83%BD%E9%80%9A%E8%BF%87%20x2go%20.png)
我无法使用 DSA 密钥通过 X2GO 连接到远程服务器。通过 SSH 连接正常,但当我尝试使用 X2GO 连接时,它立即地到用户名/密码框,并且不想使用我在选项中指定的私钥。如果我选择“尝试自动登录”,它似乎会尝试连接,然后我收到以下错误:
没有匹配的公钥
访问被拒绝。可以继续的身份验证:公钥
之前可以正常工作,但我重新安装了客户端操作系统,从那时起就无法连接了。我从之前的安装中复制了所有 SSH 密钥。
我也尝试删除我的~/.ssh/known_hosts
文件并添加密钥,ssh-agent
但没有成功,但密钥肯定添加正确:
$ ssh-add -l
1024 b9:3d:e5:ef:48:ea:fc:c6:6e:45:89:b5:35:e7:58:39 server.com_dsa (DSA)
注意,如果我在服务器上启用密码验证,我可以正常连接,但是我想使用公钥。有什么想法可以让我使用公钥验证进行连接吗?
答案1
遇到了同样的问题,Windows 无法使用 SSH 密钥连接到远程 Linux 客户端。即使直接从 PuTTY 运行 Pageant 或运行附带的 X2GO Pageant 进行自动登录也不会使用我的 Windows PPK 格式的 ssh 密钥。我不得不使用我的 Linux 格式的 ssh 密钥。一旦我在 X2GO 客户端配置中使用它,我就可以再次成功连接到我的 Linux 客户端,使用更安全的 ssh 隧道而不是密码验证。
将 PuTTY 格式的 SSH 转换为 Linux 格式的 SSH:
将您的 PPK 复制到您的 Linux 机器,运行以下命令,并将该输出文件复制回您的 Windows 机器
chmod 400 ppk文件
ssh-keygen -i -f ppkfile > linuxstylekey
答案2
这些答案对我没有用。
这个答案解决了我的问题: x2go 密码提示然后身份验证失败
解决方案是创建一个像这样的旧式 rsa 密钥。
ssh-keygen -m PEM -t rsa -b 4096
此外,上面链接的答案对于我使用 pageant.exe 不起作用(它给出了错误的密钥格式错误)。但这没关系,因为我可以通过 X2Go 会话选项卡“使用 RSA/DSA 密钥进行 ssh 连接:”指定上面生成的 .ppk 文件。
由于 X2Go 客户端没有给出相关错误,因此这一切都有点难以排除故障。
答案3
您正在尝试哪种服务器/客户端组合?
当我使用 OSX 客户端对 Ubuntu 服务器进行操作时,一切都运行正常。只需将公钥复制到~/.ssh/authorized_keys
服务器上即可。
当我使用 Windows 客户端对抗 Ubuntu 服务器时,它可以运行,但却不稳定/有缺陷。
对于后者,您需要遵循此处的说明。本质上,您需要运行:
C:\Program Files\x2goclient>ssh-keygen.exe -t dsa
然后将密钥输入~/.ssh/authorized_keys
到服务器上。
你还需要注意指定相应的私钥文件在 Windows 客户端上配置特定连接时。
在目前的 Windows 客户端中,它会不必要地提示我Enter passphrase to decrypt a key
三次,稍作停顿,然后让我进入服务器。一切似乎都运行正常,直到我注销,之后客户端挂起/崩溃。
该客户端在 Windows 8 上构建了 4.0.0.3。
答案4
我知道这是一个非常老的问题,但我想分享x2go
在使用public key
AND时如何连接password
。
如果您无需任何特殊设置(当然,除了公钥)即可从 ssh 登录,那么只需勾选该框Try auto login ...
并将该Use RSA/DSA ...
框留空。
清单:
- x2go 服务器已启动并正在运行
- 您的
sshd_config
内容包含:(AuthenticationMethods publickey,password
或类似) - 您将客户端的公钥(即 id_rsa.pub)添加到服务器的
authorized_keys
文件中。 - 您可以使用
ssh
命令进行连接(Authenticated with partial success
输入密码之前显示消息)。 - 您已应用如上图所示的设置。