要实现 CentOS 无密码 SSH 登录,需分别在服务器端(被登录的机器)和客户端(用于 SSH 的机器)上分别配置。
客户端配置
生成公钥和私钥
ssh-keygen -t rsa -C "你的邮箱"
有提示一路 enter
生成完毕之后在 ~/.ssh 里面查看
id_rsa :私钥
id_rsa.pub :公钥
导入公钥到认证文件,更改权限
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#修改 sshd 的配置文件
vim /etc/ssh/sshd_config
# 找到以下内容,并去掉注释符”#“
RSAAuthentication yes
PubkeyAuthentication yes
# 这里指代了寻找免密登录公钥文件位置,所以在 ~/.ssh/ 下面必须要有 authorized_keys 文件
AuthorizedKeysFile .ssh/authorized_keys
重启 sshd 服务
systemctl restart sshd
或者
service sshd restart
查看 sshd 服务是否启动
service sshd status
公钥导入服务器
本机执行 scp -P 远程服务器端口号 ~/.ssh/id_rsa.pub 远程服务器登录用户@远程服务器ip:/home/id_rsa.pub
登录到远程服务器执行 cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
登录到远程服务器执行 chmod 700 ~/.ssh
登录到远程服务器执行 chmod 600 ~/.ssh/authorized_keys
服务器端配置
修改 sshd 的配置文件
vim /etc/ssh/sshd_config
# 找到以下内容,并去掉注释符”#“
RSAAuthentication yes
PubkeyAuthentication yes
# 这里指代了寻找免密登录公钥文件位置,所以在 ~/.ssh/ 下面必须要有 authorized_keys 文件
AuthorizedKeysFile .ssh/authorized_keys
重启 sshd 服务
systemctl restart sshd
或者
service sshd restart
查看 sshd 服务是否启动
service sshd status
验证
ssh -p 远程服务器端口号 远程服务器登录用户@远程服务器ip
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于