欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS 6 SSH 免密登录

程序员文章站 2024-03-15 19:46:54
...

CentOS 6 SSH 免密登录
https://www.tecmint.com/ssh-passwordless-login-using-ssh-******-in-5-easy-steps/

步骤:

  1. 在本地生成**
  2. 把生成的公共**添加到服务器中
  3. 配置服务器端ssh,允许使用**登录

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


1. 在本机生成**

ssh-****** -t rsa

CentOS 6 SSH 免密登录

此时,在 .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 aaa@qq.com -p 1122 'cat >> .ssh/authorized_keys'

# 上述操作会把本地 id_rsa.pub 中的数据 添加到 服务器端 .ssh/authorized_keys 中
# 因为我的 ssh 服务改了端口,所以在后面的语句中添加了 -p 1122,如果你的没有修改,就不用添加这个语句。后面那一块只是 ssh 语句而已。
# --------------------------
# 此时,服务器端 .ssh 里是这样的,注意文件大小

[aaa@qq.com ~]# 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

CentOS 6 SSH 免密登录

4. 直接登录

完成正确配置之后应该是这样的:
- 本地的 .ssh/ 目录下应该有 id_rsa 和 id_rsa.pub 两个文件
- 服务器 .ssh/ 目录下的 authorized_keys 文件里应该有本地 id_rsa.pub 的内容
- 服务器 /etc/ssh/sshd_config 文件中已经配置了允许使用 **登录

现在就可以直接登录了,不需要使用密码。
CentOS 6 SSH 免密登录

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

相关标签: vps ssh sshd