所谓公钥登录,就是用户将自己的公钥储存在远程主机上。登录的时候远程主机回向用户发送一段随机字符串,用户用自己的秘钥加密后再发送给远程主机。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
生成公钥和秘钥
cd ~/.ssh
ssh-keygen -t rsa
- id_rsa 秘钥
- id_rsa.pub 公钥
公钥发送给远程主机
ssh-copy-id user@ip -p
使用 ssh user@ip -p 检测是否设置成功。
更安全地使用 ssh
对 sshd_config 做一些设置,位置:/etc/ssh/sshd_config
禁止 root 使用 ssh 登入。
找到 #PermitRootLogin yes 修改 为 PermitRootLogin no
使用非常规的 ssh 端口
找到 #Port 22, 去掉注释。修改为其它,建议五位。
设置公钥+密码双重验证方式
在 /etc/ssh/sshd_config末端加入这一行:
AuthenticationMethods publickey,password
它告诉用户必须拥有合法的公钥,和输入正确的密码才能成功登入。
之后,重启 sshd 服务。
systemctl restart sshd.service
-END-