# linux

Linux 服务器配置使用密钥登录教程

2022-11-23 14:46:03
21

第一步:

登录服务器:并执行以下命令生成密钥和公钥

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 登录即可,记得登录认证方式,还要导入密钥。

最后编辑于 2024-10-31 14:05:46