Linux SSH密匙登录

Posted beck-s-home

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux SSH密匙登录相关的知识,希望对你有一定的参考价值。

   最近整了一个腾讯云服务器, 没事倒腾倒腾。 说来惭愧做php程序员也好几年了,一直都是写写代码很少直接操作服务器,所以很多linux知识对我来说都挺新鲜的。一般碰到不会的问题都是通过网页搜索来解决。这不,今天登陆服务器又碰到问题了,登陆进去后发现一条消息:There are 2906 failed login attemps since the last successful login. 我去一个吓了个半死,难道几天不见就有黑客攻击我的服务器吗。顿时心里一阵懵逼,赶紧寻找解决方案,网上一搜发现大家都普遍碰到过这个问题,可以通过在服务器生成一对公钥和私钥来解决。

技术分享图片

 

那下面我们就用系统的ssh-keygen工具来生成公钥和私钥:

step 1: 输入命令 ssh-keygen

Enter file in which to save the key: 之后会提示密匙保存的路径,我们直接按Enter键就好,不用修改。

Enter passphrase (empty for no passphrase): 接着系统提示你输入passphrase密码短语,为了安全起见我们最好设置一下,提醒一下密码短语长度需大于4,否则无效

设置完密码短语之后公钥私钥就生成好了,总共要两个文件id_rsa,id_rsa.pub,保存到/root/.ssh目录下。

技术分享图片

 

 

step 2: 修改文件/root/.ssh/authorized_keys

这个文件一开始是个空文件,我们要把刚刚生成的公钥复制到这个文件。使用这个命令:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

接下来我们要开始修改ssh配置文件了,让ssh程序知道验证文件保存在哪

step 3: 修改ssh配置文件/etc/ssh/sshd_config

为保险起见,修改之前我们先备份一下这个文件:cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

现在可以修改文件了,

找到AuthorizedKeysFile行,把后面的值改为上一步authorized_keys文件的路径。因为我们是默认安装的,可以不用修改。如果不是我们就改成/root/.ssh/authorized_keys就好了。

找到RSAAuthentication和PubKeyAuthentication选项,都改为yes。

step 4: 重启ssh服务

我们输入命令: service ssh restart

就OK~

step 5: 下载私钥文件到本机上

用ftp或sftp工具下载生成的私钥文件/root/.ssh/id_rsa到本机,以便登录的时候使用。

step 6: 在本机用windows程序puTTYgen生成登录用的putty密匙文件

在本机运行puTTYgen程序,这个程序应该是随putty一并安装的。没有的话就自行安装吧,我也不是很了解。打开程序, 点击 Actions > Load,选择刚才从服务器下载的私钥文件。不过选择的时候这个文件可能识别不了,我们点击All Files(*.*)的选项就行了~ 然后点击save private key生成putty可以识别的私钥文件。

step 7: 用私钥文件实现ssh登录

打开putty程序,在目录Connection > SSH > Auth下选择上一步通过puTTYgen生成的私钥文件就可以登录了。登录的过程中系统会提示你输入生成公钥私钥时设置的密码短语passphrase。到这里我们就差最后一步禁用root用户和禁用密码登录了。

step 8: 禁用root用户和密码登录

编辑ssh配置文件/etc/ssh/sshd_config文件,找到PermitRootLogin选项改为yes, 就可以禁用root用户登录了。之后找到PasswordAuthentication选项改为no,就实现了禁止使用用户密码登录了。可以说通过禁用root用户和密码登录,我们再也不用担心被黑客破解SSH密码登录了。

写的比较啰嗦,各位见谅~

参考: https://www.cnblogs.com/handongyu/p/6386789.html 

以上是关于Linux SSH密匙登录的主要内容,如果未能解决你的问题,请参考以下文章

linux下生成key

有啥方法方便用SecureCRT免密码用ssh登录linux主机。

有啥方法方便用SecureCRT免密码用ssh登录linux主机。

有啥方法方便用SecureCRT免密码用ssh登录linux主机。

Centos7 PuTTY密匙登录

使用ssh免密登录