前几天恰好学到《用公钥认证的方式对服务器进行ssh登录》,然后就打算在自己的服务器上面实践一番
半个多月没登服务器,登录之后发现自从我上次登录以来居然有四千多次失败的登录尝试
于是就开始着手准备启用公钥认证的登录方式,先创建一对2048
位的使用rsa
加密方式的密钥,接着就提示设置密钥的密码,要求输入两次以便确认,完事之后就会显示出当前的服务器密钥
接下来就是给密钥文件设置权限,按照openssh的要求,这些目录和文件的权限必须是这些,没啥解释,设置完权限之后将公钥内容导入到ssh用于认证的文件中,此处我的密钥文件的文件名是“root_rsa_2048
”,公钥的文件名就是在私钥的文件名后面加上“.pub
”,如果此处提示没有“authorized_keys
”文件的话就自行用touch命令创建一个,或者先导入公钥之后再执行设置权限
在完成上面的操作之后编辑ssh服务端的配置文件
在配置文件中找到“PubkeyAuthentication
”,并将这项设置启用,然后修改为yes
找到“AuthorizedKeysFile
”,看看是不是图中这个值,如果是的话就不管,不是的话就改成图中这样
接着找到“PasswordAuthentication
”,将它的值改为“no
”(注意:此操作将禁用密码验证,也就是无法再使用密码登录了)
接下来在配置文件的底部加上“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”是要操作的服务的名称)
在重启完成之后,在已导入私钥的电脑上登录服务器不再需要输入密码,在没有导入私钥的电脑上将无法登录服务器,所以请妥善保管你的私钥
12.7更新:
今天登上服务器想看看有啥软件能更新的,结果发现还有将近700次失败的登录,上网搜了一下,说是禁用密码登录就可以解决,但我明明已经把密码登录禁了,于是去检查配置文件,发现还有没删干净的地方开了密码验证。。。。。。于是就去把那处地方注释掉了,随后重启了ssh服务,过几天再看看效果吧
高中学centos,被狠狠的震撼到了
我大二
这篇文章的作者是你啊,我以为是高冰呢
你不看文章顶部的“作者”的吗。。。
emm,手机上也没有作者啊
好吧,刚刚用手机看了一下,确实没显示作者 抱歉
妙啊