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/
步骤:
- 在本地生成**
- 把生成的公共**添加到服务器中
- 配置服务器端ssh,允许使用**登录
前提: 你已经可以用密码通过
SSH
登录服务器了
本篇文章中我使用的是Mac自带的 terminal 其它终端类似,只要知道原理就没问题了。
如果有些地方不太明白,可以去查看上面的原文
1. 在本机生成**
ssh-****** -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 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
4. 直接登录
完成正确配置之后应该是这样的:
- 本地的 .ssh/ 目录下应该有 id_rsa 和 id_rsa.pub 两个文件
- 服务器 .ssh/ 目录下的 authorized_keys 文件里应该有本地 id_rsa.pub 的内容
- 服务器 /etc/ssh/sshd_config 文件中已经配置了允许使用 **登录
现在就可以直接登录了,不需要使用密码。
【言外】: iOS 上的终端,力荐 Termius
可以生成相应的**,直接生成一个**就可以了,然后点击相应的服务器,它会自动把公共**添加到服务器的 authorized_keys 文件中