首页 帮助中心 香港云服务器 Linux中SSH Key安全加固中的方法总结
Linux中SSH Key安全加固中的方法总结
时间 : 2024-08-07 12:19:14 编辑 : 华纳云 阅读量 : 231

在Linux中,通过SSH Key替代密码进行身份验证属于常见的安全做法。想要继续提高SSH Key的安全性,一般采用一些安全加固措施。华纳云在本文总结了关于SSH Key安全加固中的方法希望对大家有所帮助!

使用强密码的SSH Key,ssh-keygen 生成 SSH 密钥对时,选择强加密算法和密钥长度。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

使用Ed25519算法,这种算法属于更现代、更安全的选择,对比RSA,它的生成密钥长度更短且安全性更高:

ssh-keygen -t ed25519 -C "your_email@example.com"

配置强加密选项,在 /etc/ssh/sshd_config 文件中,指定使用强加密选项:

# 禁用弱加密算法

KexAlgorithms curve25519-sha256@libssh.org

Ciphers aes256-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

MACs hmac-sha2-512,hmac-sha2-256

 

# SSH版本

Protocol 2

配置SSH Key的文件权限,确保私钥的文件权限于文件所有者可读,公钥文件可供SSH服务使用:

chmod 600 ~/.ssh/id_rsa

chmod 644 ~/.ssh/id_rsa.pub

chmod 700 ~/.ssh

编辑 /etc/ssh/sshd_config,修改SSH配置禁用密码登录,仅允许SSH Key认证。

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

重启SSH服务:

sudo systemctl restart sshd

在/etc/ssh/sshd_config 中指定允许使用 SSH 登录的用户或组,限制允许的用户:

AllowUsers user1 user2

# 或者限制某个组的用户

AllowGroups sshusers

利用 SSH Agent 缓存私钥,避免在每次连接时输入密码。

eval $(ssh-agent)

ssh-add ~/.ssh/id_rsa

当需要通过中间主机进行 SSH 连接时,可以使用 SSH Agent 转发来提高安全性:

ssh -A user@intermediate-host

在 /etc/ssh/sshd_config 中启用 SSH Agent 转发:

AllowAgentForwarding yes

Fail2ban 可以检测 SSH 登录失败次数并阻止可疑 IP 地址。所以安装Fail2ban,让其进行入侵检测:

sudo apt update

sudo apt install fail2ban

在 /etc/fail2ban/jail.local 中为 SSH 配置一个jail,配置Fail2ban:

[sshd]

enabled = true

port    = 22

filter  = sshd

logpath = /var/log/auth.log

maxretry = 3

bantime = 600

启动 Fail2ban 服务

sudo systemctl start fail2ban

sudo systemctl enable fail2ban

在 /etc/ssh/sshd_config 中,将 SSH 端口更改为非标准端口以减少被扫描的风险:

Port 2222

当服务器有多个网卡或 IP 地址,限制 SSH 仅监听特定 IP 地址:

ListenAddress 192.168.1.100

另外还可以通过双因素认证,来增强登录的安全性:

sudo apt install libpam-google-authenticator

配置 Google Authenticator

为用户配置双因素认证:

google-authenticator

根据提示完成设置,然后编辑 /etc/pam.d/sshd 添加:

auth required pam_google_authenticator.so

在 /etc/ssh/sshd_config 中启用挑战响应认证:

ChallengeResponseAuthentication yes

重启SSH服务

sudo systemctl restart sshd

定期更新SSH服务器和客户端软件最新版本,确保系统免受已知漏洞影响:

sudo apt update

sudo apt upgrade openssh-server

监控SSH登录活动,使用日志监控定期检查SSH登录日志,监控可疑行为:

sudo tail -f /var/log/auth.log

实时监控工具如 logwatch 或 OSSEC 来监控 SSH 登录活动并发送警报。在大型环境中,设置SSH服务器保证其具备高可用性和冗余,防止单点故障。

以上方式,能帮助您大大增强 Linux 系统中 SSH Key 的安全性。结合其他安全策略(如防火墙、入侵检测系统等),让系统拥有提供一个更加稳固的防护层。定期评估安全策略,以适应不断变化的安全需求和威胁。

华纳云 推荐文章
Linux中tar存档删除和添加更新文件便捷方式 Linux提示内存不足错误如何修复 Linux 中出现协议不可用的问题怎么办 Linux 出现符号链接层数过多错误如何处理 香港云服务器中怎么设置nginx支持http2 如何实现多服务器内容同步? Windows云主机如何监控硬件资源? centos7怎么挂载光盘?详细的步骤流程 怎么在香港云主机中部署和优化Nginx? 怎么使用Linux云服务器部署php网站?
客服咨询
7*24小时技术支持
技术支持
渠道支持