SSH 使用密钥登录并禁止口令登录实践

简介:

前言

无论是个人的VPS还是企业允许公网访问的服务器,如果开放22端口的SSH密码登录验证方式,被众多黑客暴力猜解捅破菊花也可能是经常发生的惨剧。企业可以通过防火墙来做限制,普通用户也可能借助修改22端口和强化弱口令等方式防护,但目前相对安全和简单的方案则是让SSH使用密钥登录并禁止口令登录。

这是最相对安全的登录管理方式

生成PublicKey

建议设置并牢记passphrase密码短语,以Linux生成为例

Linux:ssh-keygen -t rsa

[私钥 (id_rsa) 与公钥 (id_rsa.pub)]

Windows:SecurCRT/Xshell/PuTTY

[SSH-2 RSA 2048]

 
  1. #生成SSH密钥对
  2. ssh-keygen -t rsa
  3. Generating public/private rsa key pair.
  4. #建议直接回车使用默认路径
  5. Enter file in which to save the key (/root/.ssh/id_rsa):
  6. #输入密码短语(留空则直接回车)
  7. Enter passphrase (empty for no passphrase):
  8. #重复密码短语
  9. Enter same passphrase again:
  10. Your identification has been saved in /root/.ssh/id_rsa.
  11. Your public key has been saved in /root/.ssh/id_rsa.pub.
  12. The key fingerprint is:
  13. aa:8b:61:13:38:ad:b5:49:ca:51:45:b9:77:e1:97:e1 root@localhost.localdomain
  14. The key's randomart image is:
  15. +--[ RSA 2048]----+
  16. | .o. |
  17. | .. . . |
  18. | . . . o o |
  19. | o. . . o E |
  20. |o.= . S . |
  21. |.*.+ . |
  22. |o.* . |
  23. | . + . |
  24. | . o. |
  25. +-----------------+

复制密钥对

也可以手动在客户端建立目录和authorized_keys,注意修改权限

 
  1. #复制公钥到无密码登录的服务器上,22端口改变可以使用下面的命令
  2. #ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241

修改SSH配置文件

 
  1. #编辑sshd_config文件
  2. vi /etc/ssh/sshd_config
  3. #禁用密码验证
  4. PasswordAuthentication no
  5. #启用密钥验证
  6. RSAAuthentication yes
  7. PubkeyAuthentication yes
  8. #指定公钥数据库文件
  9. AuthorsizedKeysFile .ssh/authorized_keys

重启SSH服务前建议多保留一个会话以防不测

 
  1. #RHEL/CentOS系统
  2. service sshd restart
  3. #ubuntu系统
  4. service ssh restart
  5. #debian系统
  6. /etc/init.d/ssh restart

手动增加管理用户

可以在== 后加入用户注释标识方便管理

 
  1. echo 'ssh-rsa XXXX' >>/root/.ssh/authorized_keys
  2. # 复查
  3. cat /root/.ssh/authorized_keys

扩展阅读

目录
相关文章
|
5月前
|
Shell 网络安全 数据安全/隐私保护
debian安装ssh(傻瓜教程)+证书免密登录
debian安装ssh(傻瓜教程)+证书免密登录
361 0
|
5月前
|
网络安全
SNETCracker.exe 2022/1/26 31:13:29----检查12.26.20.1:SSH登录发生异常!未能加载文件或程序集“ChilkatDotNet4.dll”或它的某一个依赖项
SNETCracker.exe 2022/1/26 31:13:29----检查12.26.20.1:SSH登录发生异常!未能加载文件或程序集“ChilkatDotNet4.dll”或它的某一个依赖项
146 0
|
2月前
|
安全 网络协议 Linux
|
6月前
|
运维 搜索推荐 Shell
Ansible自动化运维工具之个性化定制SSH连接登录端口(3)
Ansible自动化运维工具之个性化定制SSH连接登录端口(3)
186 0
|
6月前
|
安全 Linux 网络安全
百度搜索:蓝易云 ,Linux Debian11服务器安装SSH,创建新用户并允许SSH远程登录,及SSH安全登录配置!
这些步骤提供了在Debian 11服务器上安装SSH,创建新用户并允许SSH远程登录以及进行SSH安全登录配置的指南。请确保按照步骤操作,并根据您的需求进行必要的修改。
100 0
|
2月前
|
关系型数据库 网络安全 数据库
通过SSH登录OceanBase数据库需要修改用户密码,然后使用SSH客户端进行远程登录
通过SSH登录OceanBase数据库需要修改用户密码,然后使用SSH客户端进行远程登录
74 6
|
2月前
|
网络安全 数据安全/隐私保护
如何使用ssh key免密码登录服务器?
如何使用ssh key免密码登录服务器?
|
3月前
|
安全 Linux Shell
Linux服务器配置SSH免密码登录后,登录仍提示输入密码(一次真实的问题排查解决记录)
Linux服务器配置SSH免密码登录后,登录仍提示输入密码(一次真实的问题排查解决记录)
94 0
|
3月前
|
人工智能 Ubuntu 安全
如何在 Ubuntu 20.04 上设置 SSH 密钥
SSH是一种加密协议,用于管理服务器并与服务器通信。使用 Ubuntu 服务器时,我们将大部分时间花在通过 SSH 连接到服务器的终端会话上。 下来将重点关注为 Ubuntu 20.04 安装设置 SSH 密钥,SSH 密钥提供了一种安全的登录服务器的方式。
221 0
|
3月前
|
安全 Linux 网络安全
服务器设置 SSH 通过密钥登录
服务器设置 SSH 通过密钥登录