【发布时间】:2013-04-19 05:36:09
【问题描述】:
我在使用公钥身份验证为 Windows 设置 OpenSSH 时遇到问题。
我在我的本地桌面上工作,并且可以使用来自 Unix 机器或其他适用于 Windows 机器的 OpenSSH 的密钥进行 ssh。
我已将构建复制到服务器上,我可以让密码验证正常工作,但是当我使用密钥时,我遇到了以下问题:
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: /cygdrive/c/sshusers/jsadmint2232/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
Connection closed by 127.0.0.1
因此,出于测试目的,我一直在尝试通过 SSH 连接到 localhost,但即使远程尝试,我也会遇到同样的问题。
更奇怪的是,当我在sshd_config 中同时启用了密码和公钥时,它只会尝试使用密钥,然后用上述消息轰炸,甚至不会尝试使用密码。
以下是我采取的步骤:
- 为 Windows 安装 OpenSSH
-
mkgroup -l >>..\etc\group(添加本地组) -
mkgroup -d >>..\etc\group(添加域组) -
mkpasswd -L -u openssh >>..\passwd(添加了我的本地用户) -
mkpasswd -D -u jsadmint2232 >>..\passwd(添加了我的域用户) - 编辑文件 passwd 中的 homedir 以指向 c:\sshusers%USER% - 其中 %USER% 是用户名
- 启用密码验证,禁用密钥验证
- 为 jsadmint2232 / OpenSSH 创建 SSH 密钥并确保在主目录中创建文件
- 为每个用户在 .ssh 目录中添加了 authorized_keys 文件,并为传入的连接用户添加了密钥
-
net stop opensshd/net start opensshd - 测试密码验证是否在本地和远程都有效
- 更新了 sshd_config,以启用密钥身份验证 - 重新启动 opensshd
- 测试连接并得到上述错误。此外,它甚至不尝试密码验证。
- 更新了 sshd_config,完全禁用密码验证 - 重新启动 opensshd
- 测试连接仍然出现上述错误
似乎服务器出于某种原因正在终止连接。
【问题讨论】:
标签: windows ssh public-key-encryption openssh public-key