要实现SSH免密登录,你需要生成一对SSH密钥(公钥和私钥),然后将公钥复制到目标服务器的authorized_keys文件中。以下是详细步骤:
1. 生成SSH密钥对
在本地机器上打开终端,运行以下命令来生成SSH密钥对:
ssh-keygen -t rsa -b 4096
-t rsa指定使用RSA算法。-b 4096指定密钥长度为4096位。
运行命令后,系统会提示你输入文件保存位置和密码短语(passphrase)。你可以选择默认位置(通常是~/.ssh/id_rsa)并设置一个密码短语,或者直接按回车键使用默认设置。
2. 将公钥复制到目标服务器
使用ssh-copy-id命令将公钥复制到目标服务器的authorized_keys文件中。假设目标服务器的IP地址是192.168.1.100,用户名是user:
ssh-copy-id user@192.168.1.100
运行命令后,系统会提示你输入目标服务器用户的密码。输入密码后,公钥将被复制到目标服务器的~/.ssh/authorized_keys文件中。
3. 测试免密登录
现在你可以尝试免密登录到目标服务器:
ssh user@192.168.1.100
如果一切设置正确,你应该能够直接登录到目标服务器,而不需要输入密码。
4. 配置SSH客户端(可选)
如果你希望进一步配置SSH客户端,可以在本地机器的~/.ssh/config文件中添加以下内容:
Host 192.168.1.100
HostName 192.168.1.100
User user
IdentityFile ~/.ssh/id_rsa
这样,你就可以直接使用ssh 192.168.1.100来登录目标服务器,而不需要每次都输入用户名和私钥路径。
注意事项
- 确保目标服务器的SSH服务允许使用公钥认证。你可以在目标服务器的
/etc/ssh/sshd_config文件中检查以下配置:PubkeyAuthentication yes - 如果目标服务器的防火墙阻止了SSH连接,请确保相应的端口(默认是22)是开放的。
- 如果你使用的是非默认的SSH端口,请在
ssh-copy-id命令中指定端口:ssh-copy-id -p 2222 user@192.168.1.100
通过以上步骤,你应该能够成功实现SSH免密登录。
以上就是关于“如何用CentOS实现SSH免密登录”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm