CentOS SSH 免密登录

https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/

<https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/>

<>步骤:

* 在本地生成密钥
* 把生成的公共密钥添加到服务器中
* 配置服务器端ssh,允许使用密钥登录
前提: 你已经可以用密码通过 SSH 登录服务器了
本篇文章中我使用的是Mac自带的 terminal 其它终端类似,只要知道原理就没问题了。
如果有些地方不太明白,可以去查看上面的原文

##1. 在本机生成密钥
ssh-keygen -t rsa


此时,在 .ssh/ 目录下会多出两个文件:
Mac-mini:~ kyle$ ls -al .ssh/ total 24 drwx------ 5 kyle staff 170 Aug 20 22:41
. drwxr-xr-x+ 47 kyle staff 1598 Aug 20 22:05 .. -rw------- 1 kyle staff 1679
Aug 20 22:41 id_rsa -rw-r--r-- 1 kyle staff 401 Aug 20 22:41 id_rsa.pub
-rw------- 1 kyle staff 803 Aug 17 19:27 known_hosts
<>2. 把生成的公共密钥添加到服务器端

ssh 登录 服务器,在服务器用户根目录中新建 .ssh/ 文件夹,并修改文件夹权限 700
# 已登录服务器,在服务器端操作 mkdir .ssh chmod 700 .ssh
上传本地公共密钥到服务器上

不要手动复制粘贴 id_rsa.pub 中的内容,是没用的,粘贴后的大小是不一样的。
# 本地操作,非服务器 cat .ssh/id_rsa.pub | ssh root@kylebing.cn -p 1122 'cat >>
.ssh/authorized_keys' # 上述操作会把本地 id_rsa.pub 中的数据 添加到 服务器端 .ssh/authorized_keys 中
# 因为我的 ssh 服务改了端口,所以在后面的语句中添加了 -p 1122,如果你的没有修改,就不用添加这个语句。后面那一块只是 ssh 语句而已。 #
-------------------------- # 此时,服务器端 .ssh 里是这样的,注意文件大小 [root@host ~]# ll -a
.ssh/ total 12 drwx------ 2 root root 4096 Aug 20 10:11 . dr-xr-x---. 5 root
root 4096 Aug 20 09:31.. -rw------- 1 root root 401 Aug 20 10:15 authorized_keys
<>3. 配置服务器端ssh,允许使用密钥登录

编辑配置文件 /etc/ssh/sshd_config 找到这个位置,把这三行前面的 # 去掉,保存
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile
.ssh/authorized_keys#AuthorizedKeysCommand none #AuthorizedKeysCommandRunAs
nobody
重启 ssh 服务
service sshd restart


<>4. 直接登录

完成正确配置之后应该是这样的:

* 本地的 .ssh/ 目录下应该有 id_rsa 和 id_rsa.pub 两个文件
* 服务器 .ssh/ 目录下的 authorized_keys 文件里应该有本地 id_rsa.pub 的内容
* 服务器 /etc/ssh/sshd_config 文件中已经配置了允许使用 密钥登录
现在就可以直接登录了,不需要使用密码。


【言外】: iOS 上的终端,力荐 Termius
可以生成相应的密钥,直接生成一个密钥就可以了,然后点击相应的服务器,它会自动把公共密钥添加到服务器的 authorized_keys 文件中

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信