パスワードのないSSHの場合は、次のコマンドが適しています。
rsync -aqve ssh ${user}@${remote_host}:/etc/bind /tmp/etc/bind
root権限を使って自分のローカル/etc/bindに直接rsyncしたいので、次のことを試しました。
sudo rsync -aqve ssh ${user}@${remote_host}:/etc/bind /etc/bind
しかし、今はパスワードプロンプトが表示されます(悪い状況です)。
パスワードプロンプトなしでローカル/ etc / bindに直接コピーするには、この行をどのように変更しますか?
答え1
自分のユーザーを使用してこれを行う場合は、自分の$HOME/.ssh/
ディレクトリでSSHキーを使用してください。 rootでこれを行うと、sudo
そのssh
ディレクトリはルートのホームディレクトリから取得されますが、.ssh
キーはそこにありません。
この問題を解決する4つの方法は次のとおりです。どちらの方法でも効果があります。
authorized_keys
ルートとしてリモートサーバーのユーザーの新しいSSHキーを生成し、公開部分を- 自分のSSHキーをルート
.ssh
ディレクトリにコピーします。 (既存のキーを上書きしないように注意してください!) - 自分のユーザーに宛先ディレクトリへの書き込み権限を付与します。この方法を選択する前に、安全への影響を考慮してください!
Chris Downが述べたように、次のコマンドを使用して既存のSSHキーを使用します。
$ sudo rsync -aqve 'ssh -i ~user/.ssh/id_rsa' \ ${user}@${remote_host}:/etc/bind /etc/bind