第一步:
登录服务器:并执行以下命令生成密钥和公钥
ssh-keygen -t rsa
#连续执行回车即可,如需密码,请在密码提示出输入,如图:
暂不支持此私钥格式,请参考以下方法解决:
1.转换成PEM格式私钥
ssh-keygen -p -m PEM -f 私钥路径
2.生成PEM格式的私钥
生成时增加 -m PEM参数
ssh-keygen -m PEM -t rsa -C "content"
以上会在自动家目录( /root 目录下生成隐藏的 .ssh 文件夹 )
#注意隐藏文件无法使用 ls 命令查看到,需要使用如下命令
ls -al
注意:生成密钥公钥后请务必将私钥下载好好保存,登录时需要
#第二步:
配置 ssh 使用密钥
#进入 ssh 目录
cd ~/.ssh 或者 cd /root/.ssh/
#然后安装公钥 authorized_keys
cp id_rsa.pub authorized_keys
#注意,如果存在 authorized_keys 则采用写入方式
cat id_rsa.pub >> authorized_keys
#设置公钥权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
第三步:
修改 ssh 配置文件
#打开修改
vi /etc/ssh/sshd_config
然后对应如下修改:
StrictModes no #此项默认为注释关闭
PubkeyAuthentication yes
RSAAuthentication yes #默认不存在,可放到上面一行的下边
AuthorizedKeysFile .ssh/authorized_keys #ssh文件位置,此项默认设置相同
PasswordAuthentication yes #使用密码 no为不使用密码
AuthenticationMethods publickey,password #如果密码和密钥都使用在末尾加上此行代码
一键脚本
#备份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
#删除配置项
sed -i '/PasswordAuthentication.*/d' /etc/ssh/sshd_config
sed -i '/PubkeyAuthentication.*/d' /etc/ssh/sshd_config
sed -i '/RSAAuthentication.*/d' /etc/ssh/sshd_config
sed -i '/AuthorizedKeysFile.*/d' /etc/ssh/sshd_config
#追加配置项,会关闭密码登录 PasswordAuthentication no
cat >>/etc/ssh/sshd_config<<EOF
PasswordAuthentication no
PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
EOF
为了保证安全,我们建议密码和密钥同时使用。
第四步
完成以上步骤设置后,重启 sshd 服务
systemctl restart sshd.service
第五步
然后使用 Xshell 登录即可,记得登录认证方式,还要导入密钥。