配置SSH密钥实现rsync免密同步

在你的本地机器(发起 rsync 的机器)上执行: 1. 生成密钥对(如果已有 ~/.ssh/id_rsa 可跳过) ssh-keygen -t rsa -b 2048 一路按回车即可(默认路径,密码留空)。这会生成两个文件: id_rsa(私钥):留在本地,是你的"身份证"。 id_rsa.pub(公钥):需要发给服务器。 2. 将公钥上传到远程服务器 ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_server_ip 这一步需要输入一次服务器密码,目的是把你的公钥写入服务器的 ~/.ssh/authorized_keys 文件。 3. 确保私钥权限为600(仅所有者可读写) chmod 600 ~/.ssh/id_rsa 4. 验证测试 ssh username@remote_server_ip 如果配置成功,你会发现直接就能登录,不再需要输入密码。此时运行 rsync 命令也会直接静默执行。 配置好密钥后,rsync脚本即可全自动运行 #!/bin/bash # 现在运行这个脚本,不会再弹出密码提示 rsync -avz -e 'ssh -p 22' /local/data/ user@remote_ip:/remote/backup/

2026-07-15 · 1 分钟

Linux防22端口爆破自动封禁

安装与配置 fail2ban 防22端口爆破自动封禁 安装:sudo apt install fail2ban 重启:sudo systemctl restart fail2ban 配置文件:/etc/fail2ban/jail.d/sshd.local 查看被封ip:sudo fail2ban-client get sshd banip 配置文件sshd.local如下: [sshd] # 启用此监狱 enabled = true # 使用 systemd 后端来读取日志,避免找不到日志文件的问题 backend = systemd # 监控的端口(ssh 对应 22 端口) port = ssh # 最大重试次数 maxretry = 3 # 统计时间窗口(秒) findtime = 600 # 封禁时长(秒),-1 为永久封禁,请谨慎使用 bantime = 7200 # 忽略的IP地址段,如本地环回 ignoreip = 127.0.0.1/8 ::1 常用管理命令 配置完成后,你需要使用以下命令来管理和监控 Fail2ban 的运行状态 操作类别 命令 作用 服务管理 sudo systemctl start fail2ban 启动服务 sudo systemctl stop fail2ban 停止服务 sudo systemctl restart fail2ban 重启服务(修改配置后常用) sudo systemctl status fail2ban 检查服务运行状态 sudo fail2ban-client reload 重新加载配置(不中断服务) 状态查询 sudo fail2ban-client status 查看所有激活的"监狱"(jail) sudo fail2ban-client status sshd 查看特定监狱(如sshd)的详细状态,包括当前被禁IP 手动干预 sudo fail2ban-client set sshd unbanip <IP地址> 解封特定 IP sudo fail2ban-client set sshd banip <IP地址> 手动封禁特定 IP

2026-06-22 · 1 分钟