前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[叶子]记一次给自己服务器启用公钥私钥登录并禁用密码登录ssh

[叶子]记一次给自己服务器启用公钥私钥登录并禁用密码登录ssh

作者头像
冰漪叶
发布2022-10-24 13:14:20
9550
发布2022-10-24 13:14:20
举报
文章被收录于专栏:冰漪叶的折腾

前几天恰好学到《用公钥认证的方式对服务器进行ssh登录》,然后就打算在自己的服务器上面实践一番

上课的时候老师发下来的文档
上课的时候老师发下来的文档

上课的时候老师发下来的文档

半个多月没登服务器,登录之后发现自从我上次登录以来居然有四千多次失败的登录尝试

登录时的提示
登录时的提示

登录时的提示

于是就开始着手准备启用公钥认证的登录方式,先创建一对2048位的使用rsa加密方式的密钥,接着就提示设置密钥的密码,要求输入两次以便确认,完事之后就会显示出当前的服务器密钥

创建密钥(公钥+私钥)
创建密钥(公钥+私钥)

创建密钥(公钥+私钥)

接下来就是给密钥文件设置权限,按照openssh的要求,这些目录和文件的权限必须是这些,没啥解释,设置完权限之后将公钥内容导入到ssh用于认证的文件中,此处我的密钥文件的文件名是“root_rsa_2048”,公钥的文件名就是在私钥的文件名后面加上“.pub”,如果此处提示没有“authorized_keys”文件的话就自行用touch命令创建一个,或者先导入公钥之后再执行设置权限

设置权限并导入公钥
设置权限并导入公钥

设置权限并导入公钥

在完成上面的操作之后编辑ssh服务端的配置文件

使用vim编辑ssh服务端配置文件
使用vim编辑ssh服务端配置文件

使用vim编辑ssh服务端配置文件

在配置文件中找到“PubkeyAuthentication”,并将这项设置启用,然后修改为yes

在配置文件中查找并修改“PubkeyAuthentication”的值为yes
在配置文件中查找并修改“PubkeyAuthentication”的值为yes

在配置文件中查找并修改“PubkeyAuthentication”的值为yes

找到“AuthorizedKeysFile”,看看是不是图中这个值,如果是的话就不管,不是的话就改成图中这样

在配置文件中查找并检查“AuthorizedKeysFile”的值
在配置文件中查找并检查“AuthorizedKeysFile”的值

在配置文件中查找并检查“AuthorizedKeysFile”的值

接着找到“PasswordAuthentication”,将它的值改为“no”(注意:此操作将禁用密码验证,也就是无法再使用密码登录了

在配置文件中查找并修改“PasswordAuthentication”的值为no
在配置文件中查找并修改“PasswordAuthentication”的值为no

在配置文件中查找并修改“PasswordAuthentication”的值为no

接下来在配置文件的底部加上“RSAAuthentication”并设置为“yes”,最后再检查一遍,配置文件没有错误的话就报错然后退出编辑器

在配置文件中添加“RSAAuthentication”并将其的值设置为yes
在配置文件中添加“RSAAuthentication”并将其的值设置为yes

在配置文件中添加“RSAAuthentication”并将其的值设置为yes

然后挑选一个自己趁手的方式,从服务器上下载私钥到本地

下载私钥文件
下载私钥文件

下载私钥文件

然后在你的ssh客户端上导入私钥,我这里用的是系统自带的openssh,使用以下命令导入ssh私钥:

代码语言:javascript
复制
sc config ssh-agent start=auto
net start ssh-agent
ssh-add "私钥文件路径"

三条命令,前两条需要管理员权限,用途是将“ssh-agent”服务设置为自动启动,然后手动启动这个服务,最后那一条是导入私钥文件。经测试,使用私钥登录服务器必须启动ssh-agent服务,不然会无法登录。导入的时候会提示你输入你在创建的时候设置的密码,如果输入正确,会提示成功添加。

导入私钥文件
导入私钥文件

导入私钥文件

在确定你本地环境准备完毕之后就到服务器上面重启sshd服务,重启服务的命令不同系统各不相同,Redhat系的Linux系统是用“systemctl restart xxx”重启,Debian系的是“service xxx restart”(“xxx”是要操作的服务的名称)

重启ssh服务
重启ssh服务

重启ssh服务

在重启完成之后,在已导入私钥的电脑上登录服务器不再需要输入密码,在没有导入私钥的电脑上将无法登录服务器,所以请妥善保管你的私钥

12.7更新:

今天登上服务器想看看有啥软件能更新的,结果发现还有将近700次失败的登录,上网搜了一下,说是禁用密码登录就可以解决,但我明明已经把密码登录禁了,于是去检查配置文件,发现还有没删干净的地方开了密码验证。。。。。。于是就去把那处地方注释掉了,随后重启了ssh服务,过几天再看看效果吧

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档