# 生成密钥(RSA 兼容性强) ssh-keygen -t rsa -b 4096 -C "netnr" # 生成密钥 # Git 客户端 v2.33.1 及以上的版本或者 OpenSSH 是 8.8 及以上 RSA 算法被禁用,添加配置 ~/.ssh/config Host * HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa # 生成密钥(ED25519 更小更快更安全,需要 OpenSSH 6.5 以上,推荐),密钥均为 256 位 ssh-keygen -t ed25519 -C "netnr" # ref https://blog.csdn.net/qq_41664096/article/details/118930458 https://docs.gitlab.com/ee/user/ssh.html # 配置 SSH 连接 vi /etc/ssh/sshd_config # 编辑 /Port 22 # 搜索、修改端口号 RSAAuthentication yes # 开启RSA验证 PubkeyAuthentication yes #是否使用公钥验证 AuthorizedKeysFile .ssh/authorized_keys # 公钥的保存位置 PasswordAuthentication no # 禁止使用密码验证登录 # 允许 ROOT 登录,yes 允许、without-password 除密码以外、forced-commands-only 仅允许使用密钥、no 不允许 PermitRootLogin without-password cd ~/.ssh touch ~/.ssh/authorized_keys # 新建公钥文件 cat id_rsa.pub >> authorized_keys # 追加生成的公钥 # 权限设置 chmod 700 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/* systemctl restart sshd.service # 重启服务 ssh -p 22 -i ~/.ssh/id_rsa root@192.168.100.115 # SSH 连接 # 多次登录失败锁定用户 cat /etc/pam.d/sshd # 查看 PAM 配置文件 # 配置示例 auth required pam_tally2.so deny=5 unlock_time=600 even_deny_root root_unlock_time=600 auth required pam_tally2.so onerr=fail deny=10 unlock_time=1800 even_deny_root root_unlock_time=1800 # pam_tally2 模块说明 # deny 指定最大几次认证错误,如果超出此错误,将执行后面的策略。如锁定N秒,如果后面没有其他策略 指定时,默认永远锁定,须手动解锁 # file 记录日志的路径,默认是 /var/log/tallylog # lock_time 锁定多长时间,单位是秒 # onerr=fail 表示连续失败 # unlock_time 被锁后多长时间自动解锁 # even_deny_root root用户在认证出错时,一样被锁定 # root_unlock_time root用户在失败时锁定多长时间,配合 even_deny_root 使用 # 手动解锁 root 用户 pam_tally2 -u root # 查看 root 用户密码连续输入错误次数 pam_tally2 -u root -r # 清除 root 用户密码连续输入错误次数 authconfig --disableldap --update # 更新 PAM 安全认证记录