简介
之前用用户名和密码登陆服务器 这样不安全 ,用SSH公钥(public key)验证 这个办法能很好的解决 登陆服务器 和安全登陆服务器的特点:
方法 / 步骤
🔐 一: 证书生成
命令行页面生成 (推荐)
# 使用目标账号登录目标服务器,使用ssh key生成器生成账号
ssh-keygen -t rsa -b 4096
# enter 键盘保存key
# Enter file in which to save the key
# 回车输入密码(使用私钥登录的密码:可以为空)
# Enter passphrase (empty for no passphrase):
# 一路enter 之后生成 id_rsa(私钥文件) id_rsa.pub(公钥文件)
/home/your_user_name/.ssh/ 文件夹下面生成公钥和私钥
SSH客户端连接工具生成
1.2.1 打开SSH连接客户端MobaXterm --> 工具
1.2.2 生成RSA密钥对
- 保存公钥和私钥
不设置私钥密码直接点击‘是’即可
在按照步骤操作完毕后,会得到两个文件
① ssh_login.pub:公钥文件,必须上传到远程主机。
② ssh-_ogin.ppk:私钥文件,在MobaXterm的Session属性中启用之后,连接远程主机生效
🔨 SSH登录配置
2.1 上传公钥到KVM
把公钥文件 ssh_login.pub上传到 /root/.ssh/ 目录下
#进入.ssh
cd /root/.ssh/
# linux root 目录下没有.ssh目录
ssh localhost
# 把公钥文件 ssh_login.pub上传到该目录下
cat /root/.ssh/ssh_login.pub >> /root/.ssh/authorized_keys
cat /root/.ssh/ssh_login.pub >> ~/.ssh/authorized_keys
2.2 生效配置
cd /etc/ssh
# ssh 配置文件
vi /etc/ssh/sshd_config
- 📜配置项
#开启RSA验证
RSAAuthentication yes
#使用公钥验证
PubkeyAuthentication yes
#公钥保存位置 (把公钥ssh_login.pub内容复制到authorized_keys里面)
AuthorizedKeysFile .ssh/authorized_keys
# 是否开启密码登录 yes:开启密码登录 no:禁用密码登录
PasswordAuthentication no
# yes 允许Root远程登录 without-password:允许除密码以外 forced-commands-only:仅允许使用密钥
PermitRootLogin yes
#必要时,可以通过下面的配置属性修改登录端口
Port 22
# 找到StrictModes字段,将yes修改为no
#StrictModes yes
2.3更改权限
注意: 1) .ssh目录的权限必须是700 2) .ssh/authorized_keys文件权限必须是600。
chmod 700 /root/.ssh/
chmod 700 /root/.ssh/authorized_keys
# chmod 644 /root/.ssh/authorized_keys
重启ssh服务即可使用ssh密钥登录
systemctl restart sshd
systemctl restart sshd.service
不使用证书会有如下提示
restorecon -R -v /home #root用户为/root
🎫 使用证书登录
另外开启一个窗口(尽量不要关闭当前配置窗口) 测试登录
📌 密钥绑定账号
给组员分配登录账号时候,只允许密钥登录的时候可以做以下操作
- 使用目标账号登录目标服务器,使用ssh key生成器生成账号
ssh-keygen -t rsa -b 4096
# enter 键盘保存key
# Enter file in which to save the key
# 回车输入密码(使用私钥登录的密码:可以为空)
# Enter passphrase (empty for no passphrase):
# 一路enter 之后生成 id_rsa(私钥文件) id_rsa.pub(公钥文件)
# 把公钥文件id_rsa.pub 改名为authorized_keys
mv id_rsa.pub authorized_keys
把id_rsa(私钥文件) 拷贝出来,就是可以登录该账号了