Linux下设置安全密钥登录

步骤:

1、本地生成密钥(公钥和私钥):

(1) 本地是 Windows 系统:

打开 XShell ,选择 Tool >> New User Key Wizard

密钥长度可以是1024或2048,导出公钥,假设文件名为:

Ubuntu_59_rsa_2048.pub

(2) 本地是 Linux 系统:

ssh-keygen -t rsa -b 2048   #-b 参数指定长度

执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示呢输入密钥的密码的,不需要密码直接回车。密钥生成后会在当前目录下产生两个文件:id_rsa和id_rsa.pub,其中id_rsa是私钥,id_rsa.pub是公钥。

2、服务器设置

使用XShell的ssh方式登录服务器,切换到root用户

在用户主目录创建 .ssh 文件夹(没有的话),

mkdir .ssh
cd  .ssh
apt install lrzsz (或 yum install lrzsz) (安装 rzsz 软件)
rz (上传公钥文件 Ubuntu_59_rsa_2048.pub)

在.ssh 文件夹下创建认证文件authorized_keys,把公钥导入其中:

cat  Ubuntu_59_rsa_2048.pub  >  authorized_keys

设置文件权限,防恶意篡改

chmod 600 authorized_keys
chmod 700 /root/.ssh

编辑 ssh 的主配置文件:

vim  /etc/ssh/sshd_config

取消注释并修改成如下:

StrictModes  no //设置为no
RSAAuthentication yes  //Ubuntu 16 有此项
PubkeyAuthentication  yes //开启密钥登陆
AuthorizedKeysFile   .ssh/authorized_keys

重启ssh服务:

systemctl restart sshd

3、在 XShell 中测试密钥登录

4、关闭ssh 密码登陆

测试成功则编辑配置文件关闭 ssh 密码方式登陆

vim  /etc/ssh/sshd_config
PasswordAuthentication   no //关闭ssh 密码登陆