设置ssh密码登录
服务器与部署

设置ssh密码登录

JACIN3 分钟阅读
AI 摘要

这份操作记录面向需要在 Linux 服务器上临时或明确启用 SSH 密码登录的场景,核心目标是修改 OpenSSH 服务端配置,使其监听 2222 端口、允许 root 直接登录,并开启密码与 PAM 相关认证。正文先通过备份 /etc/ssh/sshd_config 保留回退点,再用重写配置文件的方式设置 Port、PermitRootLogin、PasswordAuthentication、ChallengeResponseAuthentication、UsePAM 和 sftp 子系统路径,随后用 passwd 为 root 设置密码并重启 ssh 服务使配置生效。由于开放密码登录和 root 登录会增加暴力破解风险,记录进一步补充了 fail2ban 的安装与基础防护配置,用于对 SSH 登录失败行为进行自动封禁。fail2ban 部分强调不要直接修改 jail.conf,而是在 /etc/fail2ban/jail.local 中覆盖默认项,设置 systemd 后端、3600 秒封禁时间、600 秒检测窗口、5 次最大重试,并将 sshd jail 的端口同步为 2222。最后给出重启、启用 fail2ban 以及查看 sshd jail 状态的命令,并记录当 status sshd 提示 jail 不存在时,可安装 python3-systemd 作为排查处理方向。整体更适合有基础 Linux 运维经验、需要快速恢复密码登录或为非标准 SSH 端口增加基础防护的用户参考,但实际使用时仍应谨慎评估 root 密码登录带来的安全边界。

目录#

[[toc]]

设置ssh 密码登录#

python
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

root@DMIT-ekXdcJp4HS:~# cat > /etc/ssh/sshd_config << 'EOF'
Port 2222
PermitRootLogin yes
PasswordAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
Subsystem sftp /usr/lib/openssh/sftp-server
EOF
root@DMIT-ekXdcJp4HS:~# 

然后设置密码即可:

python
sudo passwd root


然后重启服务
sudo systemctl restart ssh

安装 fail2ban#

安装 fail2ban

python
sudo apt update
sudo apt install -y fail2ban

不要直接改 jail.conf,而是在 /etc/fail2ban/ 下新建一个 jail.local 覆盖默认设置:

vim /etc/fail2ban/jail.local

python
[DEFAULT]
backend = systemd
bantime  = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port    = 2222
filter  = sshd
python
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

查看日志

python
sudo fail2ban-client status sshd

遇到这个错误的话:

text
root@s52281 ~ # sudo fail2ban-client status sshd
2026-01-24 07:43:28,808 fail2ban                [145026]: ERROR   NOK: ('sshd',)
Sorry but the jail 'sshd' does not exist

安装服务
root@s52281 ~ # sudo apt install python3-systemd

评论

还没有评论,来发第一个吧