可以通过 SSH 连接,但不能通过 x2go

可以通过 SSH 连接,但不能通过 x2go

我无法使用 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 keyAND时如何连接password

如果您无需任何特殊设置(当然,除了公钥)即可从 ssh 登录,那么只需勾选该框Try auto login ...并将该Use RSA/DSA ...框留空。

使用公钥和密码连接到 x2go

清单:

  • x2go 服务器已启动并正在运行
  • 您的sshd_config内容包含:(AuthenticationMethods publickey,password或类似)
  • 您将客户端的公钥(即 id_rsa.pub)添加到服务器的authorized_keys文件中。
  • 您可以使用ssh命令进行连接(Authenticated with partial success输入密码之前显示消息)。
  • 您已应用如上图所示的设置。

相关内容