9

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

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

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

我不确定它是否无法读取 authorized_keys 文件,或者是否存在超时问题,或者身份验证是否失败?有没有办法获得更多细节?

我已完成以下步骤:

  • ssh 主机配置。对所有人的回答是肯定的。
  • 生成 RSA 密钥并将其添加到 authorized_keys 文件中。
  • 网络启动 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”,我猜。它没有显示在“net user sshd”中。“xxxxxxxx”是域帐户。这会导致公钥身份验证问题吗?

只是为了看看输出有没有什么不同,我删除了authorized_keys文件试了一下。输出没有区别。它仍然发送一个数据包并继续进行下一个身份验证模式。没有错误信息。有没有其他方法可以获取更多详细信息(我是 Cygwin 和 SSH n00b)?我想在阅读 authorized_keys 文件时发现它失败了。

4

6 回答 6

2

快速仔细检查一下,您是否将您的公钥或私钥添加到了 authorized_keys 中?它必须是您的公钥。

我注意到服务器在收到您的 pubkey_test 后没有以“服务器接受密钥...”响应,并且我已经看到当您连接到的服务器上的 authorized_keys 文件中缺少公钥时。你应该看到:

debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279

最简单的设置方法是使用 ssh-copy-id 来完成这项工作,例如:

# ssh-copy-id localhost

这将创建具有正确权限的 authorized_keys 文件。运行此程序时,系统将提示您输入密码,因为服务器没有密钥。一旦此命令成功运行,您就可以使用您的身份文件简单地通过 ssh 连接到服务器。注意ssh_config默认身份文件为~/.ssh/identity、~/.ssh/id_rsa、~/.ssh/id_dsa,所以如果要使用不同的文件,应该在~/.ssh中设置一个别名/配置。

希望这可以帮助。

于 2014-09-03T19:12:45.053 回答
2

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

但是我错了。每次使用 Windows 资源管理器复制文件时,cygwin 中的权限和所有权都会损坏。所以不要使用 Windows 资源管理器来更改任何 cygwin 文件,只能使用命令行应用程序,如, cp, mkdir,mv等。 vimnano

此外,如果您想创建一个新的安装,只需使用该setup_x86_64.exe文件并为其选择一个新root目录,然后让安装程序安装包并为您完成其余的工作。

这样您就可以确保没有任何东西被损坏,并且您将来不会对一些惊人的错误消息感到惊讶。

于 2018-07-06T17:08:00.647 回答
0

至少你需要

chmod 700 id_rsa

如果有帮助,这是 我的设置

-rwx------ 1 Steven None 1675 年 5 月 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
于 2013-05-18T17:46:36.677 回答
0

您的 cygwin 设置似乎存在一些问题,这就是用户/组未正确显示的原因。您需要运行 mkgroup 来生成您的 /etc/group,可能还需要运行 mkpasswd。我有一个类似的问题 - 我必须运行 mkpasswd 来重新生成我的 /etc/passwd。运行 mkpasswd 后,我终于可以 ssh 进入我的 localhost。遗憾的是调试信息没有记录足够的信息来轻松诊断问题。

本页详细介绍了 cygwin 中的 Windows 安全性:http: //cygwin.com/cygwin-ug-net/ntsec.html#ntsec-setuid-overview

于 2014-01-15T00:05:52.650 回答
0

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

在我的情况下,使 Cygwin 端的 authorized_keys 文件世界可读(模式 644)似乎允许公钥认证成功。

从我所见,模式 600 是标准的,所以在我的情况下,这个“修复”实际上可能是 Cygwin SSHD 设置中其他地方出现问题的迹象。但是现在 pub key 身份验证终于起作用了,我可能不会再深入挖掘了。

于 2014-11-15T02:07:56.027 回答
0

重新安装它

C:\

很多问题都会迎刃而解。

于 2020-10-09T08:47:17.417 回答