67

我正在尝试通过 PuTTy 连接到我的 Debian Google Compute Engine 服务器(我也尝试过其他替代方法),但是当我这样做时,我收到错误“断开连接:没有支持的身份验证方法可用(服务器发送:公钥)

谷歌服务器没有用户名和密码,只有一个自动登录到自己终端的网址。

4

18 回答 18

25

我让 PuTTY 工作,然后有一天得到了这个错误。

解决方案:我修改了包含我的证书(私钥)的文件夹路径名,这导致 Pageant 失去了对证书的跟踪,因此是空的。

一旦我将证书重新安装到 Pageant 中,Putty 就会再次开始工作。

于 2014-01-17T09:15:55.147 回答
20

开启密码验证

默认情况下,您需要使用密钥 ssh 进入您的谷歌计算机引擎机器,但如果您不需要该级别的安全性,您可以打开密码验证。

提示:使用云控制台中的在浏览器窗口中打开SSH 选项来访问机器。然后切换到 root 用户sudo su - root以进行下面的配置更改。

在此处输入图像描述

  1. 编辑/etc/ssh/sshd_config文件。
  2. 更改为。PasswordAuthentication_ChallengeResponseAuthenticationyes
  3. 重新启动 ssh /etc/init.d/ssh restart
于 2014-11-21T17:40:50.113 回答
9

请按照本指南操作:https ://gist.github.com/feczo/7282a6e00181fde4281b 并附上图片。

简而言之:

使用 Puttygen,单击“生成”按照说明移动鼠标并等待

  • 输入您想要的用户名

  • 输入您的密码

  • 保存私钥

复制“用于粘贴到 OpenSSH 授权密钥文件的公钥”窗口的全部内容。确保从头到尾复制每个字符!

转到 Google Cloud Platform Console 中的创建实例页面,然后在高级选项链接中粘贴您的公钥的内容。

完成后记下实例的 IP 地址。打开 putty,从左侧菜单转到 Connection / SSH / Auth 并定义保存的密钥文件位置。

从左侧菜单转到连接/数据并定义相同的用户名

  • 输入您的实例的 IP 地址
  • 将保存的会话下方的连接命名为“GCE”点击“保存”
  • 双击刚刚创建的“GCE”条目
  • 接受主人的身份

现在使用您之前指定的密码登录并运行 sudo su- 一切就绪。

于 2014-08-07T11:51:24.520 回答
8

您需要使用 SSH 密钥登录到您的实例。

GCE 文档在此处解释了该过程。

于 2013-11-30T17:29:28.017 回答
7

我遇到了同样的问题,但通过在谷歌云中将 enable-oslogin 从 TRUE 更改为 FALSE 使其工作。

从:

至: 在此处输入图像描述

于 2018-12-15T18:25:33.157 回答
4

我有同样的问题,只是想通了!

假设您已经创建了私钥/公钥,并在远程服务器上添加了您的公钥...输入 username@remotehost.com 然后转到 Connection -> SSH -> Auth 并单击 Browse 以找到您的私钥。选择后,它将填充输入字段。之后点击打开...

所以这里重要的是顺序......确保您首先输入主机参数,然后找到您的私钥。

于 2014-11-15T00:24:38.017 回答
2

显然sudo chmod -R a+rw在您的主文件夹上运行也会导致这种情况发生。

于 2014-10-24T22:15:56.837 回答
2

我收到此错误是因为我忘记在 GCE 元数据部分的密钥后面添加我的用户名。例如,您打算在元数据部分添加一个条目,如下所示:

sshKeys    username:key

我忘记了这个username:部分,因此当我尝试使用该用户名登录时,我得到了不支持的身份验证方法错误。

或者,要完全关闭 ssh 密钥要求,请查看我的其他答案

于 2014-04-21T01:28:20.790 回答
2

这个问题主要是你连接的用户名没有访问GCE中的shell造成的。因此,您使用以下步骤来解决此问题。

gcloud auth list

如果您使用正确的登录名。请按照以下步骤操作。否则使用

gcloud auth revoke --all
gcloud auth login [your-iam-user]

并且您获得令牌或它会自动检测令牌。

gcloud compute --project "{projectid}" ssh --zone "{zone_name}" "{instance_name}" .

如果您不知道上面的这一行,请单击compute engine-> ssh dropdown arrow-> view google command-> copy该代码并使用它

现在它会更新您的元数据,并且它可以在您计算机的文件夹中使用Users->username

~/.ssh/google_compute_engine.ppk
~/.ssh/google_compute_engine.pub

然后您使用创建一个新的 ppk 文件puttygen并提供您想要的用户名,如my_work_space. 然后将公钥和私钥保存在一个文件夹中。

下一步:从 puttygen 复制公钥数据并在 gcloud 元数据中创建新的 ssh 密钥

cloud console ->compute engine->metadata->ssh key->add new item->paste the key and save it

现在返回你的shell命令行工具然后输入

sudo chown -R my_work_space /home/my_work_space

现在您使用 sftp 将此私钥连接到任何地方。它打开文件而不显示权限错误

:) 欢乐时光。

于 2018-03-02T12:53:17.673 回答
1

电力下降并出现此错误。解决方案是双击您的 .ppk(腻子私钥)并输入您的密码。

于 2018-05-08T21:50:57.523 回答
1

我遇到了同样的问题,经过几次反复试验后解决了。在 /etc/ssh/ssh_config 中,设置

  • 公钥认证是

  • AuthorizedKeysFile .ssh/authorized_keys

  • 密码验证无

  • AuthenticationMethods 公钥

然后,打开腻子。在“已保存的会话”中,输入服务器 IP,通过左侧面板上的路径 Connection->SSH->Auth->Browse 搜索您的私钥并打开它。最后,回到左侧面板的 Session of putty,可以看到服务器 IP 地址仍在“Saved Sessions”字段中,然后点击“Save”,这是关键步骤。它将让用户不再使用密码登录。玩得开心,

于 2018-01-03T09:26:07.813 回答
1

下载“PuttyGEN”获取公钥和私钥,使用 gcloud SSH 编辑并粘贴位于 /home/USER/.ssh/authorized_keys 中的公钥

sudo vim ~/.ssh/authorized_keys

点击 i 键粘贴 publicKEY。要保存,请点击 Esc、:、w、q、Enter。编辑 /etc/ssh/sshd_config 文件。

sudo vim /etc/ssh/sshd_config

改变

PasswordAuthentication no [...] ChallengeResponseAuthentication 为 no。[...] UsePAM no [...] 重新启动 ssh

/etc/init.d/ssh 重启。

其余的将您的腻子配置为教程注意:选择选美添加密钥并开始会话会更好

于 2018-04-13T06:58:23.207 回答
1

如果在 Linux 中使用 ssh-keygen 生成了私钥,则需要使用 puttygen 进行转换,因为 Putty 不支持 openssh 密钥。

启动 puttygen,点击 Conversions - Import key,然后点击 Browse 并选择用 openssh 生成的私钥,然后点击 Save private key。

使用您的新密钥进行连接。

于 2017-05-25T03:42:50.140 回答
0

类似的问题 - 相同的错误消息。尝试使用 ssh 从 bitbucket 克隆某些内容时,我收到了相同的消息。问题出在我在 mercurial.ini 中配置的 ssh 配置中:我使用了错误的 bitbucket 用户名。在我更正用户名后,一切正常。

于 2018-07-03T11:12:26.510 回答
0

PasswordAuthentication 和 ChallengeResponseAuthentication 在 rhel7 中默认设置为 NO。

将它们更改为 NO 并重新启动 sshd。

于 2015-12-15T08:24:30.503 回答
0

我知道这是一个老问题,但由于这个答案,我遇到了同样的问题并解决了它。

我经常使用腻子,从来没有遇到过任何问题。我使用并且一直使用公钥认证。今天我无法再次连接到我的服务器,而无需更改任何设置。

然后我看到了答案,并记得我无意中chmod 777 .在我的用户的主目录中运行。我从其他地方连接并简单地运行chmod 755 ~。一切立即恢复正常,我什至不必重新启动 sshd。

我希望我从某人那里节省了一些时间

于 2019-10-30T17:47:10.160 回答
0

对我来说,这是我的问题,来自https://unix.stackexchange.com/questions/282908/server-refused-public-key-signature-despite-accepting-key-putty的解决方案

“查看日志 /var/log/secure 表明它完全被拒绝了。我对 centos 有点陌生,因为我主要是一个 debian 类型的人,所以我不知道 /var/log/secure

在检查了这一点并进行了一些搜索之后,如果您只想专门使用密钥进行 root 登录,那么 PermitRootLogin 不需要是 PermitRootLogin without-password。那成功了。感谢大家的贡献。”

于 2018-11-02T22:44:23.547 回答
0

我收到了同样的错误消息,发现我的错误出在我与 putty 一起使用的用户名中。显然 GCE SSH 密钥列表会更改您在某些列表中的用户名字符。在我的例子中,下划线改为句号。即:my_username 变为 my.username

我无意中从列表中复制了错误的用户名并得到了相同的错误消息。

于 2022-01-19T01:02:12.747 回答