通过ssh连接服务器或使用 rsync
时每次都需要输入密码,可以通过设置 SSH 密钥认证 来避免每次手动输入密码。SSH 密钥认证是一种安全且方便的方式来连接远程主机,而无需每次输入密码。
设置 SSH 密钥认证
以下是配置 SSH 密钥认证的步骤,避免每次 rsync
时输入密码。
1. 生成 SSH 密钥对
首先,在本地计算机上生成一对 SSH 密钥(如果你还没有生成过)。
ssh-keygen -t rsa -b 2048
此命令会生成一个新的密钥对。按提示操作(可以直接按 Enter 键,使用默认文件路径)。通常,密钥对会保存在 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
文件中。
2. 将公钥复制到远程主机
将生成的公钥 id_rsa.pub
复制到远程主机的 ~/.ssh/authorized_keys
文件中。可以使用 ssh-copy-id
命令自动完成这个过程:
ssh-copy-id user@remote_host
其中 user
是远程主机的用户名,remote_host
是远程主机的 IP 地址或域名。
如果没有 ssh-copy-id
工具,可以手动执行以下操作:
- 将
id_rsa.pub
内容复制到远程主机。 - 登录到远程主机:
ssh user@remote_host
- 在远程主机上执行以下命令,确保
~/.ssh
目录和authorized_keys
文件存在:mkdir -p ~/.ssh nano ~/.ssh/authorized_keys
- 将
id_rsa.pub
的内容粘贴到authorized_keys
文件中。
3. 测试 SSH 无密码登录
现在你可以测试是否可以通过 SSH 无密码登录远程主机:
ssh user@remote_host
如果配置正确,你应该不再需要输入密码,而是直接登录。
4. 使用 rsync
无密码传输文件
现在,使用 rsync
传输文件时,应该不会再提示输入密码。比如:
rsync -avz /local/file user@remote_host:/remote/directory/
小结
通过设置 SSH 密钥认证,你可以避免每次使用 rsync
时输入密码。只需一次配置 SSH 密钥对并将公钥复制到远程主机,后续使用 rsync
或 SSH 时即可无需输入密码。