【SSH】配置无密码 SSH 密钥认证
配置无密码 SSH 密钥认证
1. 在本地服务器上生成 SSH 密钥
运行以下命令生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
- 默认会生成两个文件:
- 私钥:
~/.ssh/id_rsa - 公钥:
~/.ssh/id_rsa.pub - 在生成密钥过程中,你可以直接按
Enter使用默认路径,不设置密码短语(方便自动化任务)。

2. 将公钥复制到远程服务器
运行以下命令将公钥传输到远程服务器:
ssh-copy-id root@8.138.2.44
- 系统会提示输入远程服务器的密码。
- 公钥会自动被添加到远程服务器的
~/.ssh/authorized_keys文件中。

3. 验证 SSH 无密码登录
尝试从本地服务器登录远程服务器:
ssh root@8.138.2.44
如果不再提示输入密码,则说明配置成功。

4. 修改脚本以实现无密码传输
配置完成后,原脚本中的 scp 命令无需修改,scp 将直接使用 SSH 密钥认证实现文件传输:
sync_command = f"scp {backup_filepath} {REMOTE_USER}@{REMOTE_SERVER}:{REMOTE_DIR}"
运行脚本时,scp 会自动使用配置的密钥认证登录到远程服务器并传输文件。