Windows 上的 OpenSSH - 启用基于密钥的身份验证

Windows 上的 OpenSSH - 启用基于密钥的身份验证

我正在尝试在 Windows 上运行的 OpenSSH 服务器上设置基于密钥的身份验证。不幸的是,服务器似乎不接受我提供的密钥,但我看不到任何具体的错误消息或错误原因。以下是我迄今为止尝试的步骤:

常规设置

  1. 设置特定域帐户以访问服务器。在本例中,我们设置一个可以访问服务器的服务帐户,并使用 mkgroup 和 mkpasswd 生成组和密码文件。
  2. 验证基于密码的身份验证是否正常工作。
  3. 修改 passwd 文件,使用“/cygdrive/d/share”将用户主目录更改为 D: 驱动器上的指定文件夹

按键设置

  1. 修改 ssh_config 以包含以下两行:

    RSA身份验证 是

    公钥认证 是

  2. 运行 ssh-keygen 为用户生成公钥和私钥。
  3. 将公钥内容复制到D:\Share\.ssh\authorized_keys
  4. 运行以下命令测试与 SSH 服务器的连接:

    ssh -v -l CRMETLSFTP -i id_crmftp 服务器名称

据我所知,这些应该是必要的步骤。当我远程连接PuTTy时(转换私钥后),我收到“服务器拒绝我们的密钥”。使用-v在本地测试连接,我得到以下输出:

C:\Program Files (x86)\OpenSSH>ssh -v -l CRMETLSFTP -i id_crmftp DEVCRMETL01
OpenSSH_3.8.1p1, OpenSSL 0.9.7d 17 Mar 2004
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to DEVCRMETL01 [172.17.8.151] port 22.
debug1: Connection established.
debug1: identity file id_crmftp type 1
debug1: Remote protocol version 2.0, remote software version OpenSSH_3.8.1p1
debug1: match: OpenSSH_3.8.1p1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.8.1p1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'devcrmetl01' is known and matches the RSA host key.
debug1: Found key in /home/rbrunner/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received

debug1: Authentications that can continue: publickey,password,keyboard-interacti
ve
debug1: Next authentication method: publickey
debug1: Offering public key: id_crmftp
debug1: Authentications that can continue: publickey,password,keyboard-interacti
ve
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interacti
ve
debug1: Next authentication method: password
CRMETLSFTP@devcrmetl01's password:

据我所知,它正在尝试正确发送密钥。我猜想授权密钥没有正确接收,但我不知道从哪里开始查找。

答案1

也许回答有点晚了,但为了防止其他人遇到这个问题,我会尝试以下方法。

  • 将 authorized_keys 复制到 authorized_keys2。
  • 运行ssh-user-config以确保权限等正确。
  • -d使用、-dd和参数启动 sshd,-ddd使其在测试时不在前台 fork 和打印调试信息。这通常比-vvv在客户端上增加调试信息 ( ) 更有帮助。

相关内容