
目录
1、[SSH简介](#ssh简介)
2、[生成密钥对](#生成密钥对)
3、[配置公钥到目标服务器](#配置公钥到目标服务器)
4、[验证免密登录](#验证免密登录)
5、[常见问题与解决方案](#常见问题与解决方案)
6、[(#

SSH简介
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录和管理其他计算机,SSH通过加密传输数据和用户认证信息,确保数据传输的安全性,SSH免密登录则通过使用公钥和私钥对,避免了每次登录时输入密码的麻烦,提高了工作效率和安全性。
生成密钥对
步骤:
1、进入指定目录:
cd ~/.ssh
如果目录不存在,可以使用以下命令创建:
mkdir -p ~/.ssh chmod 700 ~/.ssh
2、生成密钥对:
ssh-keygen -t rsa
按提示操作,可以一路回车使用默认设置,也可以自定义密钥文件名称和路径。

ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "your_email@example.com"
-t rsa
表示生成RSA类型的密钥,-f ~/.ssh/id_rsa
表示指定密钥文件路径和名称,-C "your_email@example.com"
表示为密钥添加注释。
3、查看生成的文件:
ls -l ~/.ssh
输出示例:
-rw------1 user user 1679 date time id_rsa -rw-r--r-1 user user 412 date time id_rsa.pub
id_rsa
是私钥文件,id_rsa.pub
是公钥文件。
配置公钥到目标服务器
方法一:使用ssh-copy-id
命令
1、复制公钥到目标服务器:
ssh-copy-id username@remote_host
ssh-copy-id root@192.168.2.25
此命令会将本地公钥追加到目标服务器的~/.ssh/authorized_keys
文件中,并设置正确的权限。
方法二:手动复制公钥
1、将公钥复制到本地临时文件:
cat ~/.ssh/id_rsa.pub > temp_key.pub
2、将公钥上传到目标服务器:
scp temp_key.pub username@remote_host:/tmp/temp_key.pub
3、在目标服务器上追加公钥到authorized_keys
文件:
ssh username@remote_host 'cat /tmp/temp_key.pub >> ~/.ssh/authorized_keys'
4、删除临时文件:
ssh username@remote_host 'rm /tmp/temp_key.pub' rm temp_key.pub
5、设置目标服务器的权限:
ssh username@remote_host 'chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'
验证免密登录
1、测试登录:
ssh username@remote_host
如果配置正确,系统将直接登录而不会提示输入密码。
2、检查登录信息:
在目标服务器上执行以下命令,确认登录的用户和来源IP地址:
lastb -n 10
常见问题与解决方案
问题1:无法连接目标服务器
检查网络连接:确保客户端和服务器之间的网络连接正常。
防火墙设置:确保服务器防火墙允许SSH端口(默认22)。
SSH服务状态:确保SSH服务在目标服务器上已启动。
systemctl status sshd systemctl start sshd
问题2:权限不足
检查文件权限:确保~/.ssh
目录和authorized_keys
文件的权限设置正确。
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
问题3:公钥已存在
处理重复公钥:如果目标服务器上的authorized_keys
文件中已有相同的公钥,可以选择替换或删除旧的公钥记录。
配置SSH免密登录可以大大提高工作效率,避免每次远程登录时输入密码的繁琐过程,通过上述步骤,您可以在Linux环境下轻松实现SSH免密登录,记得定期更换密钥,以确保系统的安全性。
以上内容就是解答有关“服务器配置ssh免密登录”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复