要实现SSH免密登录,你需要生成一对SSH密钥(公钥和私钥),然后将公钥复制到目标服务器的authorized_keys文件中。以下是详细步骤:
在本地机器上打开终端,运行以下命令来生成SSH密钥对:
ssh-keygen -t rsa -b 4096
-t rsa 指定使用RSA算法。-b 4096 指定密钥长度为4096位。运行命令后,系统会提示你输入文件保存位置和密码短语(passphrase)。你可以选择默认位置(通常是~/.ssh/id_rsa)并设置一个密码短语,或者直接按回车键使用默认设置。
使用ssh-copy-id命令将公钥复制到目标服务器的authorized_keys文件中。假设目标服务器的IP地址是192.168.1.100,用户名是user:
ssh-copy-id user@192.168.1.100
运行命令后,系统会提示你输入目标服务器用户的密码。输入密码后,公钥将被复制到目标服务器的~/.ssh/authorized_keys文件中。
现在你可以尝试免密登录到目标服务器:
ssh user@192.168.1.100
如果一切设置正确,你应该能够直接登录到目标服务器,而不需要输入密码。
如果你希望进一步配置SSH客户端,可以在本地机器的~/.ssh/config文件中添加以下内容:
Host 192.168.1.100
HostName 192.168.1.100
User user
IdentityFile ~/.ssh/id_rsa
这样,你就可以直接使用ssh 192.168.1.100来登录目标服务器,而不需要每次都输入用户名和私钥路径。
/etc/ssh/sshd_config文件中检查以下配置:PubkeyAuthentication yes
ssh-copy-id命令中指定端口:ssh-copy-id -p 2222 user@192.168.1.100
通过以上步骤,你应该能够成功实现SSH免密登录。