RSA 身份验证:无法使用 SSH 进行无密码登录

RSA 身份验证:无法使用 SSH 进行无密码登录

我已经设置我的计算机与远程服务器进行公/私身份验证,但不知何故它今天不工作。

我已经完成 ssh key-gen -t rsa,然后将其 scp 到远程。

我可以不使用密码进行 scp(使用 pub/priv 密钥),但每当我尝试 SSH 时,它都会要求输入密码。

我该怎么做才能仅通过密钥进行身份验证?

答案1

您应该检查您是否有(sshd_config):

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

UsePAM yes  <-- That one is usually the last line of the sshd_config

然后,您的公钥将添加到您的authorized_keys中~/.ssh/。最后一个(UsePAM yes)非常重要,因为如果禁用,它将强制您使用unix帐户进行身份验证。PAM在这里表示私钥身份验证足以登录。最后,如果仍然无法解决,您可能需要检查PAM配置。

答案2

您需要将服务器上的公钥添加到授权密钥中:

ssh-keygen -i -f keyfilename.pub >> ~/.ssh/authorized_keys2

或者

cat keyfilename.pub >> ~/.ssh/authorized_keys2

答案3

首先,在远程服务器上:

/usr/sbin/sshd -de -p 1234

第二,在您的计算机上:

ssh-vp 1234

您可能会发现错误。

或者您也可以在这里发布它们。

答案4

如果您可以使用密钥进行 scp 但不能进行 ssh,则听起来您的 scp 客户端可以找到密钥,但 ssh 客户端找不到。

既然您提到了这一点,ssh-keygen -t rsa我就会假设您在某种 UNIX 上使用 OpenSSH,并且将密钥保存在某个用户帐户的默认位置。

运行 ssh 客户端时,您是否以拥有密钥的用户(例如sued 或ed)以外的用户身份登录?如果您也需要从该帐户进行无密码 ssh,则可能需要使用该帐户,然后将该帐户的公共 ssh 密钥与另一个密钥一起放入远程服务器的授权密钥文件中。sudossh-keygen

相关内容