服务器上使用 ssh 密钥登录
1、本地客户端生成密钥对
使用下面命令生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-P表示空密码,一路回车,在 .ssh 目录会生成下面三个文件
cd ~/.ssh && ls
id_rsa id_rsa.pub known_hosts
id_rsa: 表示私钥,不要泄露
id_rsa.pub: 表示公钥
查看公钥内容,然后复制下来:
cat ~/.ssh/id_rsa.pub
上面客户端完成,开始折腾服务端
2、服务端新建authorized_keys
root目录下新建 .ssh 文件夹
mkdir /root/.ssh
.ssh 文件夹新建 authorized_keys 文件
vi /root/.ssh/authorized_keys
上面添加客户端复制下来的 id_rsa.pub
内容,保存。
3、修改 sshd_config 内容
vi /etc/ssh/sshd_config
禁用密码登陆
PasswordAuthentication no
允许root用户登录
PermitRootLogin yes
指定公钥数据库文件
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
以启用密钥登陆
PubkeyAuthentication yes
防ssh断开
ClientAliveInterval 60
ClientAliveCountMax 3
最后重启 sshd 服务:
systemctl restart sshd
然后你就可以用 ssh 命令无密码登录服务器了:
ssh root@ip