步骤:
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 密码登陆