要实现 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

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品: PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    3033 引用 • 3699 回帖 • 660 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIXUnix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    505 引用 • 598 回帖 • 1047 关注
感谢    赞同    分享    收藏    关注    反对    举报    ...