我一直在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文件失败。
快速仔细检查,你添加你的公钥和私钥对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 /身份的〜/ .ssh / id_rsa,的〜/ .ssh / id_dsa的,所以如果你想使用一个不同的文件,你应该建立一个别名到〜/ .ssh /配置。
希望这可以帮助。
我的问题是,我觉得cygwin的是确定的,如果它的文件被复制并粘贴,所以如果我想克隆安装我只是复制并粘贴C:\cygiwn64
文件夹别的地方,跑了.bat
文件。
但是我错了。 您复制与Windows文件浏览权限和所有权每次获取cygwin的损坏。 所以不要使用Windows资源管理器的更改任何cygwin的文件 ,只有使用命令行应用程序,如cp
, mkdir
, mv
, vim
, nano
等。
此外,如果你想创建一个新的安装只需要使用setup_x86_64.exe
文件,只需选择一个新的root
为它的目录,让安装程序安装包,为你做的休息。
这样,您确保没有被损坏,你不会得到在未来的一段惊人的错误消息感到惊讶。
至少,你需要
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
它似乎有一些问题,你的cygwin的设置,这就是为什么用户/组显示不正确。 您需要运行mkgroup生成你的/ etc / group文件,并可能mkpasswd为好。 我有一个类似的问题 - 我不得不跑mkpasswd再生我的/ etc / passwd文件。 运行mkpasswd后,我终于可以ssh到我的本地主机。 这是一个耻辱的调试信息不记录足够的信息来方便地诊断问题。
此页面介绍更多关于Windows安全Cygwin中: http://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-setuid-overview
我有一个类似的问题,建立公共密钥认证(由客户详细输出相似),虽然我试图从一个Ubuntu客户端Cygwin的SSHD服务器做到这一点,这是一个非常古老的Cygwin环境(版本1.5.12在Windows 2000上!)。 我已经复制使用ssh-copy-id命令公钥。
在我的情况下,使得在Cygwin的一侧的authorized_keys文件世界可读(模式644)似乎让公钥认证成功。
从我所看到的东西,模式600是标准的,所以,这可能“修复”在我的情况实际上是在Cygwin的SSHD设置其他地方问题的征兆。 但现在的酒吧密钥认证是最后的工作,我可能不会被挖得更深。