Centos7下-使用密钥认证方式登入服务器

0
2023-05-24 17:23:16

SecureCRT免密ssh登录CentOS7

ssh服务支持之中安全认证机制,就是密钥登录,这种方式是比较安全的登入方式。
因为一般的密码方式登录容易被密码暴力破解,使用密钥方式登入主机也是首推一种登入方式,比使用密码的方式登录更佳!

注意事项

PS:在还没有验证使用私钥可以登入系统之前,建议开启密码登入和密钥登入两种方式,等验证使用密钥登入成功后,再关闭对应的禁止root登入和使用密码登录系统的方式。
避免使用密钥无法登入,但是又关闭了密码登入的方式!

前提准备

开始实验之前,需要在centos上安装openssh并启动sshd服务。

yum install openssh
systemctl start sshd

配置步骤

  1. 使用ssh-keygen生成公钥和私钥

ssh-keygen -t rsa

 

PS:

Enter file in which to save the key (/root/.ssh/id_rsa):
该命令提示的意思是:让我们定义私钥的存放路径,默认存在的路径是在/root/.ssh/id_rsa的下面

Enter passphrase (empty for no passphrase):
该命令提示的意思是:定义私钥的密码,一般为了免密默认的留空,直接的回车

Enter same passphrase again:
该命令提示的意思是:确认密码设置

经过上面三次回车后,最后在/root/.ssh/id_rsa下面生成了公钥和私钥

  1. 经过上面三次回车后,最后在/root/.ssh/id_rsa下面生成了公钥和私钥

[root@lenovo ~]# cd /root/.ssh
[root@lenovo .ssh]# ll

total 8
-rw-------. 1 root root 1679 May 24 17:33 id_rsa
-rw-r--r--. 1 root root  393 May 24 17:33 id_rsa.pub

关于是否设置密钥的密码信息:一般也是建议你设置,如果不设置的话,后续别人拿到你的密钥,不输入密码的方式下就可以直接的使用密钥登入了!当然,也可以留空,实现无密码登录。如果设置可密码的话,密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。
 
  1. 在服务器上安装公钥

[root@lenovo .ssh]# chmod 700 /root/.ssh
[root@lenovo .ssh]# cat id_rsa.pub authorized_keys
[root@lenovo .ssh]# touch authorized_keys
[root@lenovo .ssh]# cat id_rsa.pub>>authorized_keys

[root@lenovo .ssh]# ll
total 12
-rw-r--r--. 1 root root  393 May 24 17:45 authorized_keys
-rw-------. 1 root root 1679 May 24 17:33 id_rsa
-rw-r--r--. 1 root root  393 May 24 17:33 id_rsa.pub

复制公钥内容到/root/.ssh/authorized_keys
PS:因为我们是使用ssh-keygen -t rsa方式生成相关密匙信息,所以此时默认的会有对应的:/root/.ssh/这个目录存在,如果没有的话(即使用其他ssh工具生成密钥的时候)就需要收的创建此目录.。
  1. 修改SSH配置,打开密钥登录功能

编辑修改 /etc/ssh/sshd_config 文件,进行如下设置:

[root@lenovo .ssh]# vi /etc/ssh/sshd_config 

PubkeyAuthentication yes # 开启密钥登入的认证方式
  1. 重启SSH服务

[root@lenovo .ssh]# systemctl restart sshd

  1. 把私钥提取出来保存到本地,然后使用SecureCRT登录

pscp root@linux的IP地址:/root/.ssh/id_rsa ./

​​​​​​​