为什么使用SSH-KEYGEN命令后无法无密码登录远程计算机?

为什么使用SSH-KEYGEN命令后无法无密码登录远程计算机?

我有两台电脑。从一开始我admin1就用密码创建了帐户admin1。然后我以 root 用户身份登录并使用该ssh-keygen -t rsa命令。我没有给密码,敲了Enter三下。

在此输入图像描述

在下一步中,我输入了ssh root@remoteuser's ip.然后我注销并尝试连接到第二台计算机,但它再次要求输入密码......

接下来,我使用了以下命令:

#useradd admin1
#passwd admin1
#ssh-keygen -t rsa
#ssh root@remoteuser's ip

为什么它再次要求输入密码?

答案1

生成密钥不会自动允许您使用它登录到远程计算机。您需要将相应的公钥复制到您要访问的机器上,如下所示:

ssh-copy-id [email protected]

此操作将要求您提供user的密码remote.machi.ne,但之后您将能够ssh使用您的密钥:

ssh -l user remote.machi.ne

如果您没有为密钥设置密码,ssh将不再要求您输入密码。

附带说明:看起来您有一个ssh刚刚覆盖的旧密钥。

答案2

Try this again:

    #useradd admin1
    #passwd admin1
    #ssh-keygen -t rsa
    **#ssh-copy-id root@remoteuserip**
    #exit

然后输入:

    #ssh root@remoteuser's ip

答案3

我们假设您的场景如下。您有计算机1(运行sshd服务)和计算机2(有密钥),并且您需要使用密钥进行连接计算机2电脑1.

在计算机 2 中,您将执行此操作ssh-keygen -t rsa并生成两个密钥(一个是公共密钥,一个以 .pub 结尾,另一个是私有密钥)。为了在从计算机 2 到计算机 1 的 ssh 连接中使用这些密钥,您必须将文件复制.pub到计算机 1。第一次您必须使用密码,将公钥复制到远程计算机后,您的下一个会话将是无密码的(如果您在密钥生成中将密码留空)。请注意,运行的用户ssh-keygen将在 ~/.ssh 的主目录下拥有密钥,除非您更改路径,并且该特定用户将具有对密钥的读取访问权限,以便可以使用它们。

有两种方法可以将 .pub 文件复制到远程计算机, 第一 - 自动) 使用ssh-copy-id -i ~/id_rsa.pub username@computer1 2. 手动ssh到computer1并在您想要无密码ssh的用户主目录中创建一个目录.ssh,然后在.ssh中创建一个名为as的文件authorized_keys并复制粘贴computer2中的内容。(您可以添加更多键附加新行)

相关内容