Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

自然 2018年2月7日15:36:01 评论 269

目前很多人还是使用密码来登陆服务器,但是这样会有被暴力破解密码的危险(除非足够复杂),根据逗比们的要求,我写个更换密码登陆方式为 Key密匙登陆的简单教程好了。

本教程演示的是 ROOT用户关闭密码登陆方式,更换为 Key密匙方式登陆。其他非ROOT用户也差不多,不过 公私/私匙 的位置就变了。

同时也可以多个服务器共有一个密匙,也避免服务器太多分不清。

为了服务器安全推荐:非22端口+Key密匙登陆+Key密匙密码,这样搭配最安全。

制作密匙对

Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

依赖确认

首先确保你的系统安装了 openssl

  1. openssl -V
  2. # 正常情况下会返回一大串内容,如果提示 -bash: openssl: command not found 则代表未安装,用下面的命令安装:
  3. # CentOS 系统:
  4. yum install openssl -y
  5. # Debian/Ubuntu 系统
  6. apt-get install openssl -y

 

我们执行下面这个命令,就会开始生成 ssh 密匙对(私匙+公匙),根据下面提示来生成。

  1. ssh-keygen
  1. Generating public/private rsa key pair.
  2. Enter file in which to save the key (/root/.ssh/id_rsa):
  3. # 输入要保存的密匙文件位置,直接回车 默认即可
  4. Created directory '/root/.ssh'.
  5. Enter passphrase (empty for no passphrase):
  6. # 输入密匙的密码,可直接回车留空,也可以输入密码来进一步增强安全性(密匙+密码双重保险)
  7. Enter same passphrase again:
  8. # 重复输入一次密匙的密码
  9. Your identification has been saved in /root/.ssh/id_rsa.
  10. # 你的私匙位置 /root/.ssh/id_rsa
  11. Your public key has been saved in /root/.ssh/id_rsa.pub.
  12. # 你的公匙位置 /root/.ssh/id_rsa.pub
  13. The key fingerprint is:
  14. 7c:25:bd:54:f5:fc:60:c0:86:c1:a0:32:7d:8a:80:c4 root@debian
  15. The key's randomart image is:
  16. +--[ RSA 2048]----+
  17. |        .o.+..o..|
  18. | o   . .  o o+ o.|
  19. |. E o . .  .o + o|
  20. | .   + +   o o o.|
  21. |    . . S .   . .|
  22. |         .       |
  23. |        .        |
  24. |                 |
  25. |                 |
  26. +-----------------+

 

配置服务器公匙

生成密匙对后,我们还要在服务器上面配置一下才能使用:

配置公匙

  1. cd .ssh
  2. # 进入 .ssh 目录
  3. ls -a
  4. # . .. id_rsa id_rsa.pub
  5. # 查看当前文件夹(/root/.ssh/)下的公匙(id_rsa.pub)和私匙(id_rsa)
  6. mv id_rsa.pub authorized_keys
  7. # 重命名公匙(id_rsa.pub)
  8. ls -a
  9. # . .. authorized_keys id_rsa
  10. # 再查看一次当前文件夹(/root/.ssh/)下的公匙是否重命名成功
  11. chmod 600 authorized_keys
  12. chmod 700 ~/.ssh
  13. # 然后修改密匙文件的权限,避免被其他用户 修改/删除。
  14. # chmod 600 - 只有属主有读写权限。
  15. # chmod 700 - 只有属主有读、写、执行权限。

 

配置SSH

然后我们就需要配置 SSH了,需要开启 Key密匙登陆选项(一般默认都是开启的)

  1. vi /etc/ssh/sshd_config

 

一般默认都是 yes 开启的,如果不是,那就改为 yes 即可。

然后重启SSH:

  1. RSAAuthentication yes
  2. PubkeyAuthentication yes
  3. # yes 代表开启密匙登陆

 

配置客户端私匙

服务器配置完毕,我们还需要配置SSH连接客户端。

私匙取回本地

  1. /etc/init.d/ssh restart
  2. # 如果这个提示没有找到服务,那么试试 /etc/init.d/sshd restart

 

首先我们读取 id_rsa 密匙文件,然后屏幕上会输出一大串的密匙,我们在本地电脑上面新建一个文本文件,并把屏幕上面的密匙复制出来写入文件内,文件取名为 id_rsa (这个名称随意,但这个密匙文件一定要保存好!

  1. # 密匙文件就像这样
  2. -----BEGIN RSA PRIVATE KEY-----
  3. Proc-Type: 4,ENCRYPTED
  4. DEK-Info: AES-128-CBC,EA47822BC49A9E56338A99D07084DA38
  5. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  6. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  8. ...
  9. ...
  10. -----END RSA PRIVATE KEY-----

 

然后我们打开SSH连接客户端,我用的是 Xshell,这里演示如何导入私匙。

Xshell导入私匙

首先打开当前会话的属性 —— 连接 —— 用户身份验证

用户身份验证方法选择 Public Key ,然后我们点击 浏览 按钮。

Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

在用户密匙管理窗口中,点击 导入 按钮,并选择刚刚我们取回的私匙文件 id_rsa

选择后会让你输入 私匙的密码,如果你上面生成密匙对的时候设置了密码,那么就输入密码,否则留空。然后点击 确定 按钮继续。

Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

选择你刚刚添加的 用户密匙,点击 确定 按钮。(为了识别性好一些,可以重命名一下名称,避免分不清密匙是哪个服务器的)

Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

这时候又回到 用户身份验证设置窗口了,我们填写用户名:root密码:用户密匙的密码,点击 确定 按钮即可。

Linux 更换密码登陆方式 为使用 Key密匙安全登陆,避免被暴力破解密码

然后我们就可以断开服务器连接,然后重新连接服务器试试(使用密匙连接),如果出问题了也没事,我们暂时还没有关闭密码登陆,还可以用密码登陆上去排错。

如果确定可以正常使用 Key密匙登陆了,那么我们就需要关闭 密码登陆方式了。

关闭密码登陆方式

我们打开 SSH的配置文件,找到下面这个参数。

  1. vi /etc/ssh/sshd_config
  2. # 默认这个参数选项就是 no,如果不是则改为 no,如果前面有 注释符# 那么就去掉 #
  3. PasswordAuthentication no

 

最后重启SSH:

  1. /etc/init.d/ssh restart
  2. # 如果这个提示没有找到服务,那么试试 /etc/init.d/sshd restart

 

其他说明

多服务器共用同一个密匙

当你有很多服务器,但是你不想单独给每个服务器生成一个个单独的密匙,那么你可以多个服务器共用一个密匙。

公匙位置也是和上面教程说的一样,假设我们是ROOT用户,那么在 /root 目录下新建一个 .ssh 目录:

  1. mkdir /root/.ssh

 

然后把你的一个公匙(authorized_keys)通过FTP/SFTP上传到其他服务器的 /root/.ssh 目录内

或通过读取并写入的方式来写入其他服务器的 /root/.ssh 目录内

  1. cat authorized_keys
  2. # 在服务器上面读取你的 公匙文件内容,如果是在本地直接打开复制内容即可
  3. echo -e "xxxx" > /root/.ssh/authorized_keys
  4. # 然后把上面代码的 xxxx 改为你复制的公匙文件内容,然后用上面的命令写入到 /root/.ssh/authorized_keys  文件内。

 

然后再根据上面的 教程配置SSH即可。

责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
weinxin
网科文媒
快来关注一下,你想要的这里都有喔!
自然

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: