使用无密码 ssh 时,此命令对我来说很好用:
rsync -aqve ssh ${user}@${remote_host}:/etc/bind /tmp/etc/bind
Run Code Online (Sandbox Code Playgroud)
由于我想使用 root 权限直接 rsync 到我自己的本地 /etc/bind,我尝试了:
sudo rsync -aqve ssh ${user}@${remote_host}:/etc/bind /etc/bind
Run Code Online (Sandbox Code Playgroud)
但是现在,我收到密码提示(这很糟糕)。
如何修复此行以在没有密码提示的情况下直接复制到我的本地 /etc/bind?
当您使用自己的用户执行此操作时,您将使用自己$HOME/.ssh/目录中的 SSH 密钥。当您以 root 身份执行此操作时sudo,ssh将在 root 的主目录中查找该.ssh目录 - 而您的密钥不在那里。
以下是解决此问题的四种方法 - 其中任何一种都应该有效:
authorized_keys为远程服务器上的用户创建新的 ssh 密钥并将公共部分添加到.ssh目录。(确保不要覆盖任何现有的密钥!)正如 Chris Down 所说,通过使用命令使用您现有的 SSH 密钥
$ sudo rsync -aqve 'ssh -i ~user/.ssh/id_rsa' \
${user}@${remote_host}:/etc/bind /etc/bind
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5050 次 |
| 最近记录: |