帮助中心

这里有最新的使用文档和教程

< 返回

Centos7 SSH如何用密钥登陆及密码密钥双重验证

2023-02-10 10:53 作者:31IDC 阅读量:327 所属分类:Linux系统

Centos7 SSH如何用密钥登陆及密码密钥双重验证

  一、首先登陆centos,切换用户,切换到你要免密码登陆的用户,进入到家目录,以下我以root为例,命令:

  

su root

cd ~

  二、创建钥匙,命令:ssh-keygen -t rsa,一路回车

 

  三、按照流程走完后会在 ~/.ssh目录下(用户所在家目录下的.ssh目录)看到id_rsa, id_rsa.pub文件 第一个是私有密钥 第二个是公共密钥

 

  四、修改SSH配置文件,命令:vim /etc/ssh/sshd_config

 

  

  #禁用root账户登录,如果是用root用户登录请开启

PermitRootLogin yes

# 是否让 sshd 去检查用户家目录或相关档案的权限数据,

# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。

# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入

StrictModes no

# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。

# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

# 有了证书登录了,就禁用密码登录吧,安全要紧

PasswordAuthentication no

 

 

  五、因为在第四步指定了AuthorizedKeysFile的放置位置为.ssh/authorized_keys,所以还需把公钥数据id_rsa.pub附加到 authorized_keys 这个档案内才行,命令:

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

 

 

 

  重启SSH服务,命令:

systemctl restart sshd.service

 

 

  六、下载私钥,这里我使用了rz/sz工具(你也可以使用其他方式),系统默认没有安装,先安装,命令:yum -y install lrzsz

  SecureCRT配置:选项→会话选项→X/Y/Zmodem,修改上传和下载的目录。

  现在开始下载,命令:

  cd ~/.ssh

  sz id_ras

  然后到你之前配置的下载目录去找,把私钥导入到SecurtCRT,方法:

  选项→会话选项→SSH2,在鉴权一栏中点击公钥(注意因为前面已经禁用了密码登陆,我们还得把密码这一栏的勾去掉,否则会无法登陆),点属性,点击使用会话公钥设置,然后在下方的使用身份或证书文件中,选择你刚才下载来的私钥文件,点确定即可。

 

  七、以上所有配置完成,看网上别的教程还说要注意各文件权限问题,我做实验的过程没有遇到,也可能我使用的是root用户的原因,如果你们在过程中有权限报错,建议权限设置:

  ~/.ssh/                     700

  .ssh/authorized_keys        644

  .ssh/id_rsa                 600  且属于你当前要添加的用户

 

  八、让服务器更安全,开启密码和证书双重验证,先修改SSH配置文件:

  vim /etc/ssh/sshd_config

  PasswordAuthentication 改为yes

  然后再加一条:uthenticationMethods publickey,password

  重启SSH服务:systemctl restart sshd.service

  SecureCRT配置:因为之前在第六步中把密码去掉了,还得把它再勾起来,选项→会话选项→SSH2,把密码这一栏勾起来即可。

  个人经验:在配置完成后不要关闭当前SecurtCRT的连接窗口,你可以使用新建连接尝试登陆,以免配置出错,造成服务器无法登陆。

31IDC - 12 年深耕海外 IDC 高端资源