步骤一:生成复杂的 SSH 密钥
1.1 生成复杂的 SSH 密钥
1.1.1 生成目前世界上最安全的复杂的 SSH 密钥 (强烈推荐)
# ssh-keygen -t ed25519 -C "<content>" -f "<public private key name>"
(补充:Ed25519 是目前 Linux 系统 SSH 登录最安全的非对称密码算法)
(
注意:
1) 步骤 1.1.1 和 步骤 1.1.2 只用二者做其一就行
2) 在生成复杂 SSH 密钥的时候最好也设置它的使用密码
)
1.1.2 生成兼容老操作系统的复杂的 SSH 密钥 (强烈不推荐)
# ssh-keygen -b 4096 -t rsa -C "<content>" -f "<public private key name>"
(
注意:
1) 步骤 1.1.1 和 步骤 1.1.2 只用二者做其一就行
2) 在生成复杂 SSH 密钥的时候最好也设置它的使用密码
)
1.2 将生成的复杂 SSH 密钥移动到指定位置
# mv <public private key name>* ~/.ssh/
1.3 给部署好的复杂 SSH 密钥设置权限
# chmod -R 600 ~/.ssh/<public private key name>*
步骤二:将复杂的 SSH 公钥拷贝到目标服务器
# ssh-copy-id -i ~/.ssh/<public private key name>.pub <destination IP address>
步骤三:指定复杂 SSH 密钥登录目标服务器
# ssh -i ~/.ssh/<public private key name> <destination IP address>
步骤四:在目标服务器上设置只能使用密钥登录
4.1 修改 /etc/ssh/sshd_conf 配置文件
如果是 Rocky Linux & RHEL:
# vim /etc/ssh/sshd_conf
将其中的:
......
# PasswordAuthentication yes
......
修改为:
......
PasswordAuthentication no
......
如果是 openSUSE & SLES:
# vim /etc/ssh/sshd_conf
将其中的:
......
# PasswordAuthentication yes
......
# ChallengeResponseAuthentication yes
......
修改为:
......
PasswordAuthentication no
......
ChallengeResponseAuthentication no
......
4.2 让修改的 /etc/ssh/sshd_conf 配置文件生效
# systemctl restart sshd
补充一:修改复杂 SSH 密钥密码的方法
# ssh-keygen -p -f ~/.ssh/<public private key name>
(补充:无密码的 SSH 密钥也能通过此方法设置密码)
补充二:显示已生成的 SSH 密钥的加密方式
# ssh-keygen -l -f ~/.ssh/<public private key name>
