侧边栏壁纸
博主头像
随心记录

我与旧事归于尽,来年依旧迎花开!

  • 累计撰写 23 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux服务器创建密钥并限制只能密钥登录

晚来听风
2024-10-24 / 0 评论 / 0 点赞 / 10 阅读 / 0 字
温馨提示:
本文最后更新于2024-10-29,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

在我们平时使用Linux系统时候一般都是使用密码登录,但是一般的密码方式登录,容易有密码被暴力破解的问题。下面来实现另外一种更为安全和便捷的登录方式:密钥登录

1.生成公钥和私钥

由于私钥必须始终保密,且不能在网络上传输(相对而言),所以我们采取在本地生成公钥和私钥,再将公钥传输到服务器上用作加密,私钥用于本地用作解密。

使用下面的命令进行生成密钥对:

#-f后面为生成密钥路径  -C后面为备注内容
ssh-keygen -t rsa -b 4096 -f "$HOME/.ssh/tencent_cloud_key" -C "腾讯云"

一路回车即可,如下图所示:

pub后缀的为公钥,反之则为私钥

2.将公钥拷贝到远程服务器上去

输入下面的命令进行拷贝。

ssh-copy-id -i "$HOME/.ssh/tencent_cloud_key.pub" user@hostname

输入yes,然后输入服务器的密码

如果你没有ssh-copy-id命令或者其他原因,那么你可以手动进行拷贝,将tencent_cloud_key.pub(替换成你实际的公钥)里面的内容进行服务,然后拷贝到远程服务器的~/.ssh/authorized_keys文件里面去。

现在你可以通过密钥来指定登录远程服务器了,如下命令所示

ssh -i "$HOME/.ssh/tencent_cloud_key" user@hostname

3.关闭密码登录

编辑/etc/ssh/sshd_config,将下面三个参数的值改为如下所示

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

修改完成后运行下面的命令进行查看是否完成修改:

grep -P "^(PasswordAuthentication|ChallengeResponseAuthentication|PubkeyAuthentication)" /etc/ssh/sshd_config

如下图所示即完成了修改

输入下面的命令,重启ssh服务,令配置生效

systemctl restart sshd

0

评论区