您的位置:首页 > 运维架构 > Linux

Linux配置使用SSH Key登录并禁用root密码登录

2017-07-11 11:48 393 查看
今天一上服务器,发现一百多次失败登录。马上意识到被ssh破解攻击了,这还了得,来一篇防护措施再说。

Linux系统大多说都支持OpenSSH,生成公钥、私钥的最好用ssh-keygen命令,如果用putty自带的PUTTYGEN.EXE生成会不兼容OpenSSH,从而会导致登录时出现server refused our key错误。

1、root用户登陆后,运行以下第一句指令,其他根据提示进行输入:

ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):                 建议直接回车使用默认路径

Created directory '/root/.ssh'

Enter passphrase (empty for no passphrase):            输入密码短语(留空则直接回车)

Enter same passphrase again:                                  重复密码短语

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

05:71:53:92:96:ba:53:20:55:15:7e:5d:59:85:32:e4 root@test

The key's randomart image is:

+--[ RSA 2048]----+

|   o o ..                |

| . o oo.+ .            |

| o.+... =               |

| ...o                     |

| o S                     |

| .                         |

|                           |

|                           |

|                           |

+--------------------+

此时在/root/.ssh/目录下生成了2个文件,id_rsa为私钥,id_rsa.pub为公钥。私钥自己下载到本地电脑妥善保存(丢了服务器可就没法再登陆了),为安全,建议删除服务器端的私钥。公钥则可以任意公开。

2、使用以下命令将公钥导入到VPS:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

3、修改SSH的配置文件/etc/ssh/sshd_config :

#RSAAuthentication yes

#PubkeyAuthentication yes

#AuthorizedKeysFile .ssh/authorized_keys

去调上面3行前面的#,保存后重启SSH服务。

service sshd restart

至此你的DigitalOcean VPS已经支持使用SSH私钥证书登录。在你使用SSH Key登录验证成功后,还是为了安全,建议你关闭root用户使用密码登陆,关闭的方法如下:

修改SSH的配置文件/etc/ssh/sshd_config,找到下面1行:

PasswordAuthentication yes

修改为:

PasswordAuthentication no

保存后重启SSH服务。

service sshd restart

好了,至此只要你保存好你的私钥(为安全,建议删除服务器端的私钥),你的服务器相比原来使用root用户加密码登陆来说已经安全多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: