无密码 SSH(Windows --> CentOS)

无密码 SSH(Windows --> CentOS)

我正在尝试从 Windows 7 计算机到本地服务器进行无密码 SSH 身份验证。

  1. Windows 机器:我在这台机器上的登录名是MY_LOGIN_NAME。我使用 Cygwin 作为命令行。

  2. CentOS 5.5 服务器:我在该服务器上拥有管理员权限;以 身份登录root

以下是我目前所做的工作:

  1. 登录MY_LOGIN_NAMEWindows 计算机后,我ssh-config-user从 Cygwin 命令行输入。这至少创建了 RSA 公钥和私钥 C:/Users/MY_LOGIN_NAME/.ssh

  2. .ssh我使用将公钥复制到服务器上的目录中scp

    scp id-rsa.pub[电子邮件保护]:.ssh/id-rsa.pub

  3. ssh然后我尝试使用如下方式登录服务器:

    ssh -i id_rsa[电子邮件保护]

但它仍然要求我输入密码。我错过了什么?

答案1

问题出在你的第 2 步。你覆盖了[电子邮件保护]公钥与您的 Cygwin 公钥。这不是您想要的。

你应该将你的公钥添加到[电子邮件保护]授权密钥。这可以手动将 id-rsa.pub 附加到 /root/.ssh/autorized_keys(在 CentOS 上),或自动运行ssh-复制-id在 Cygwin 上。

ssh-copy-id [email protected]

它会提示您输入密码,然后您就没问题了。

此外,你应该恢复[电子邮件保护]公钥,或者如果不方便的话,生成一对新的。

答案2

另外,请注意允许Root登录服务器端 /etc/ssh/sshd_config 文件中可用的选项,其中描述,

PermitRootLogin
Specifies whether root can log in using ssh(1). The argument must be "yes",
"without-password", "forced-commands-only", or "no". The default is "yes".

If this option is set to "without-password", password authentication is
disabled for root.  

将其设置为“无密码”的效果是,只允许 root 通过拥有授权公钥的方式通过 ssh 登录,这样可以马洛里尝试暴力破解 root 密码。但是,通过授权公钥进行身份验证失败会表现为重复的密码提示,这可能会造成混淆。

相关内容