服务器配置文件位于 /etc/ssh/sshd_config
sudo vim /etc/ssh/sshd_config
修改项目
#修改登录端口
Port ****(1024~65535)
#禁止root远程登录
PermitRootLogin no
#允许用户登录(白名单模式)
AllowUsers user1 user2@192.168.1.1
#允许user1 user2通过ip 192.168.1.1登录SSH,其中@ip为可选项目
#禁止用户登录(黑名单模式)
DenyUsers user3 user4
#禁止user3 user4通过SSH登录,注意所有系统账户都应该禁止登录
#禁止密码登录
PasswordAuthentication no
#确认密钥登录测试OK后再关闭
#允许密钥登录
PubkeyAuthentication yes
#配合禁止密码登录
需要防火墙开放相应端口。若当前主要使用 ufw,建议直接用 ufw 放行 SSH 端口,并确认规则已启用。
# 放行指定 SSH 端口
sudo ufw allow ****/tcp
# 查看当前规则
sudo ufw status
# 若 ufw 尚未启用,再执行
sudo ufw enable
生成ssh密钥及配置
ssh-keygen -t ed25519 -a 100 -f ./"file name" -C "comment"
建议为私钥设置 passphrase,避免私钥文件泄露后被直接使用
将生成的 .pub 公钥传输至服务器 ~/.ssh 文件夹
cat "file name".pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
注意文件权限问题
对于现代 Linux 环境,不建议再把 /etc/hosts.allow 与 /etc/hosts.deny 当作 SSH 的主要防护手段。更推荐直接使用防火墙规则、AllowUsers、密钥登录,以及按需配合 fail2ban 或 VPN / tailnet 控制访问面。