web-dev-qa-db-ja.com

sudoを使用したsshconfig

ローカルマシンをリモートサーバーにバックアップしています。ローカルマシン全体をバックアップしたいので、ローカルユーザーが通常アクセスできないファイルでも、Sudoを使用してバックアップしているので、コマンドはSudo rsync -M--fake-super --other-arguments / me@server:/backup/locationのようになります。

これには、sshがrootのssh構成、および明らかにセットアップされていない証明書を使用しようとするという問題があります。最近、~/.ssh/configで定義されたエイリアスでサーバーを参照し始めましたが、メソッドが正しく機能しなくなりました。

問題は、Sudoのアクセス権を使用する方法はありますが、通常のユーザーのssh構成を維持する方法はありますか?

2
cube

Sshキーを手動で選択するというBrianのアイデアに基づいた解決策にたどり着きました。これに、configへのパスを指定する-Fオプションを追加しました。これで、rsyncに追加する引数は次のようになります:-e "ssh -i $HOME/.ssh/id_rsa -F $HOME/.ssh/config"

4
cube

次のように、「別の方法」でリモートマシンにSSHで接続し、そこからrsyncを実行する必要があると思います。 http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Automated_Backup ==

$ rsync -e "ssh -t -l bkupacct" --rsync-path='Sudo rsync' -av [email protected]:/var/www/ /tmp/
1

Rootによって発信されたssh接続のログインユーザーを変更するには、/root/.ssh/configで次の構文を使用します。

Host server
User nonrootusername

リモートサーバーにログインするためにRSAキーが必要な場合は、次のようにrsyncする公開キーの場所を指定します。

Sudo rsync -e "ssh -i /path/to/rsa/key.pub" ...

そのサーバーエイリアスをコメントアウトします。おそらくこれについてはまったく役に立たないでしょう。

1
hBy2Py