Linux设置证书登录
通过 SSH(Secure Shell)登录 Linux 服务器常见的认证方式有密码和证书两种,但是我们一般是采用密码登录,但是就安全角度来说,密码登录比较证书登录安全性的确是要稍微弱那么一点点,本文章记录主要记录配置证书登录的方法,拒绝密码登录。
一、生成密钥
登录到root用户,在root终端执行如下命令
#生成密钥,提示文件名及路径,若是直接回车后,默认生成路径及名称为*.ssh/id_rsa*,提示输入私钥密码,若是私人电脑可以直接回车,若是公司或者需要多设备登陆,最好是生成个带密码的证书。
ssh-keygen -t rsa
#上述操作完成后,会在用户目录下生成了公钥和私钥,将生成的公钥id_rsa.pub的内容追加到.ssh/authorized_keys中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#我们需要将私钥下载到本地,如果安装lrzsz 的话可以直接通过下面命令进行下载
sz ~/.ssh/id_rsa
#私钥下载完毕后,将服务器上的公钥与私钥删除
rm -rf ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
1.1)Ssh服务配置
修改/etc/ssh/sshd_config文件,修改如下参数,如果没有则新增
PasswordAuthentication no
#禁止密码登录,改为noRSAAuthentication yes
#允许密钥认证PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#默认公钥存放位置
1.2)重启sshd任务使其生效
systemctl restart sshd #重启ssh服务
二、通过Xshell登录服务器
Xshell->工具->用户密钥管理者->导入->选择上面下载下来的id_rsa
私钥文件,如果有密码的话需要输入密码。
导入成功后登录服务器,可以看到密码栏已经变为不可编辑,需要证书登录,在用户密钥栏内选择我们刚刚导入的密钥,登录即可,如果设置了密码需要输入密码,密钥设置为空的可以直接点击登录。
以后就是ssh设置证书登录的方法及步骤!