Ssh cygwin的公钥认证问题

Ssh cygwin的公钥认证问题,ssh,cygwin,localhost,public-key,Ssh,Cygwin,Localhost,Public Key,我一直在cygwin上尝试“ssh localhost”(我使用Windows7),但它一直在询问密码 当我执行“ssh-vvlocalhost”时,我发现公钥身份验证没有发生(或失败)。因此,它要求输入密码 debug1: Authentications that can continue: publickey,password,keyboard-interactive debug3: start over, passed a different list publickey,password

我一直在cygwin上尝试“ssh localhost”(我使用Windows7),但它一直在询问密码

当我执行“ssh-vvlocalhost”时,我发现公钥身份验证没有发生(或失败)。因此,它要求输入密码

debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xxxxxxxx/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password,keyboard-interactive
我不确定它是否无法读取授权密钥文件,或者是否存在超时问题,或者身份验证是否失败?有没有办法获取更多详细信息?

我已完成以下步骤:

  • ssh主机配置。对所有人回答是
  • 生成RSA密钥并将其添加到授权密钥文件中
  • 净启动sshd
  • ssh本地主机
以下是权限:

-rw------- 1 xxxxxxxx mkgroup  402 May 18 16:34 authorized_keys
-rw------- 1 xxxxxxxx mkgroup 1675 May 18 16:33 id_rsa
-rw-r--r-- 1 xxxxxxxx mkgroup  402 May 18 16:33 id_rsa.pub
-rw-r--r-- 1 xxxxxxxx mkgroup  171 May 18 14:33 known_hosts
还有几个问题: -该组显示为mkgroup。 -我猜本地主机中不存在用户“xxxxxxxx”。 它没有显示在“网络用户sshd”中。“xxxxxxxx”是一个域帐户。 这是否会导致公钥身份验证问题


为了查看输出是否有任何差异,我删除了authorized_keys文件并尝试了。产量没有差别。它仍然发送一个数据包并进入下一个身份验证模式。没有错误消息。有没有其他方法可以获得更多细节(我是Cygwin和SSH n00b)?我希望它在读取授权密钥文件时失败。

至少您需要这样做

chmod 700 id_rsa
这是 如果有帮助的话

-rwx------ 1 Steven None 1675 May 17 12:49 id_rsa -rwx------ 1 Steven None 399 May 17 12:49 id_rsa.pub -rwx------ 1 Steven None 803 May 18 01:13 known_hosts -rwx-----1史蒂文无1675年5月17日12:49身份证 -rwx-----1 Steven None 399 5月17日12:49 id_rsa.pub -rwx-----1史蒂文无803年5月18日01:13已知主持人
您的cygwin设置似乎存在一些问题,这就是用户/组无法正确显示的原因。您需要运行mkgroup来生成/etc/group,可能还需要运行mkpasswd。我有一个类似的问题——我必须运行mkpasswd来重新生成/etc/passwd。在运行mkpasswd之后,我终于可以用ssh连接到本地主机。很遗憾,调试信息没有记录足够的信息来轻松诊断问题


本页介绍cygwin中有关Windows安全性的更多信息:

快速复查,您是否将公钥或私钥添加到授权密钥中?它必须是您的公钥

我注意到服务器在收到pubkey_测试后没有响应“server accepts key…”,我已经看到,当您连接到的服务器上的authorized_key文件中缺少公钥时。你应该看到:

debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
设置它的最简单方法是使用ssh副本id来完成工作,例如:

# ssh-copy-id localhost
这将创建具有正确权限的授权密钥文件。运行此操作时,系统将提示您输入密码,因为服务器没有密钥。一旦这个命令成功运行,您就可以使用您的身份文件简单地通过ssh连接到服务器。请注意,ssh\u config将标识文件默认为~/.ssh/identity、~/.ssh/id\u rsa、~/.ssh/id\u dsa,因此如果要使用其他文件,应在~/.ssh/config中设置别名


希望这能有所帮助。

我在设置公钥身份验证时遇到了类似的问题(客户端的详细输出类似),尽管我试图从Ubuntu客户端到Cygwin SSHD服务器进行验证,而这是一个非常旧的Cygwin环境(Windows 2000上的版本1.5.12!)。我已经使用ssh-copy-id复制了公钥

在我的例子中,在Cygwin端使授权的_密钥文件世界可读(模式644)似乎允许公钥身份验证成功


从我所看到的,模式600是标准的,所以在我的例子中,这个“修复”实际上是Cygwin SSHD设置中其他地方出现问题的一个标志。但是现在发布密钥身份验证终于起作用了,我可能不会再深入挖掘了。

我的问题是,如果cygwin的文件得到复制和粘贴,我认为cygwin是可以的,所以如果我想克隆安装,我只需复制并粘贴
C:\cygiwn64
文件夹到其他地方,然后运行
.bat
文件

但我错了。每次使用windows资源管理器复制文件时,cygwin中的权限和所有权都会损坏。因此不要使用windows资源管理器对任何cygwin文件进行更改,只能使用命令行应用程序,如
cp
mkdir
mv
vim
nano

另外,如果要创建新安装,只需使用
setup\u x86\u 64.exe
文件,只需为其选择一个新的
root
目录,让安装程序安装软件包,然后为您完成其余工作


通过这种方式,您可以确保没有任何内容被损坏,并且您不会对将来出现的一些惊人错误消息感到惊讶。

请在上重新安装它。

C:\


很多问题都会解决。

你好,史蒂文,谢谢你的回复。这对我不起作用。有没有比“ssh-vvvlocalhost”提供的内容更详细的方法?我想,当我知道问题是什么时,我将能够进一步进行。到目前为止,我还不清楚。我怀疑是我的团队造成了这个问题。你的说“没有”,但我的是“mkgroup”。你有什么NAT吗?有时它可能会破坏连接。