linux秘钥登录(免密登录)

形象点讲一对钥匙(私钥+公钥),

测试平台:centos7

原理就是将自己的公钥pub文件,发给远端主机的authorized_keys文件即可

authorized_keys文件用于记录认证的公钥信息

注:authorized_keys文件是在sshd中的配置的默认路径,若更新路径请自行查看

1
2
3
4
5
6
#命令方式:使用ssh-copy-id,直接将pub文件内容,写入到远端的authorized_keys文件中
#优势:免去创建.ssh目录和authorized_keys文件
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128

#手工方法
#先将pub公钥scp到远端主机,在讲pub内容追加到authorized_keys文件

1.生成key,并导入到默认的keys

2.备份key

3.修改sshd配置

4.重启sshd

5.登录测试,其他主机,导入key,

1.生成key,一路回车

1
2
3
4
#生成key
ssh-keygen -t rsa
#将公钥导入到本地认证文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

2.备份私钥key

~/.ssh/id_rsa:私钥文件

~/.ssh/id_rsa.pub:公钥文件

备份到本地,文件使用方法:

第一种:若是crt登录,则需要将~/.ssh/id_rsa导入到crt中

若是其他linux主机登录,则

1
2
3
4
#通过ssh-copy-id将公钥复制给远端服务器
ssh-copy-id 远端服务器
#如果公钥没有在默认路径需加-i指定公钥路径
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128

3.修改sshd配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#修改配置
 vi /etc/ssh/sshd_config

#----------------修改内容如下---------
#开启秘钥验证
PubkeyAuthentication yes
#默认key路径(第二步操作就是为了这一步)
AuthorizedKeysFile  .ssh/authorized_keys
#禁用密码登录(也可秘钥和密码同时生效,但一般开了秘钥都会禁用密码登录)
PasswordAuthentication no
#禁用密码登录
PermitRootLogin prohibit-password

4.重启sshd

1
systemctl restart sshd

5.登录测试

第一种,使用crt登录时,

1
2
3
4
#通过ssh-copy-id将公钥复制给远端服务器
ssh-copy-id 远端服务器
#如果公钥没有在默认路径需加-i指定公钥路径
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128