SSH 无密码登录

本贴最后更新于 556 天前,其中的信息可能已经时移俗易

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

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

    759 引用 • 874 回帖 • 538 关注

赞助商 我要投放

8 回帖
请输入回帖内容 ...
  • Stone

    登陆 ≠登录,请先区分登陆和登录的区别,再使用

  • someone

    ok

    1 回复
  • Stone 2 1 赞同

    当年登录写成了登陆被扣过绩效,这里提一下,不为别的,就为了其它伙伴不踩这个坑👍

    1 回复
  • tsg666

    感谢指出

  • asd1245dss 2 1 赞同

    建议使用 ssh-copy-id -i ~/.ssh/id_rsa.pub user@server,既方便也不容易出错

    1 回复
  • tsg666

    试了下 确实可以 省掉了很多步骤 百度都很详细 我就不说怎么操作了 感谢指教

  • someone 1

    貌似博主最后一段的登录没改过来,我也被这个字坑过。还有感谢博主提供到我博客的教程:smile:

    1 回复
  • tsg666

    已经改正 感谢提醒

请输入回帖内容 ...