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

此文有更新,可点击这里快速跳转到更新部分

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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服务

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


12.7更新:

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

点赞
  1. 随意之光说道:
    MIUI Browser Android 11
    高中学centos,被狠狠的震撼到了
    1. 叶子说道:
      Google Chrome Windows 10
      我大二
      1. 随意之光说道:
        WebView Android 11
        这篇文章的作者是你啊,我以为是高冰呢
        1. 叶子说道:
          Google Chrome Windows 10
          你不看文章顶部的“作者”的吗。。。
          1. 随意之光说道:
            Google Chrome Android 11
            emm,手机上也没有作者啊
            1. 叶子说道:
              Google Chrome Windows 10
              好吧,刚刚用手机看了一下,确实没显示作者 :coolapk62: 抱歉
  2. OtoyaLee说道:
    Google Chrome Windows 10
    妙啊 :huaji2:

发表评论

电子邮件地址不会被公开。必填项已用 * 标注