web-dev-qa-db-ja.com

rsyncに-e sshが必要ですか?

サーバーからコピーするときはいつも次のコマンドを使用していました:rsync --progress -avze ssh user@Host:/path/to/files ./here。しかし、心の友から、私は単純にrsync --progress -avz user@Host:/path/to/files ./here。だから問題は、もしあなたが-e sshなぜとにかくあるのですか?

22
GradGuy

ユーザーおよびホスト以外のsshコマンドに追加のオプションが必要な場合は常に、-eフラグが必要です。おそらく、接続しているサーバーのsshがポート2222で待機している可能性があります。

rsync -e 'ssh -p 2222' /source usr@Host:/dest

これを回避する代わりに、使用できるファイルが2つあります。 /etc/ssh/ssh_configまたは~/.ssh/config

構成ファイルは、ssh_configと同じ形式を使用します。ユーザーごとに構成できます!

20
UtahJarhead

デフォルト以外の秘密鍵の場所を使用する場合、つまり-eも必要です。つまり、-e 'ssh -i /path/to/private/key/file.pem'を使用して秘密鍵を指定します。さらに言えば、sshdのデフォルト以外の待機ポートも同様です。基本的に、-eを使用しても機能しない場合は、ssh user@Hostを使用します。

9
cjc

Sshを使用するために-e sshは必要ありません。実際、ターゲットをuser @ Host:/ path/to/filesと指定すると、デフォルトでsshが使用されます。これは、a)互換性の理由、およびb)rsyncdホストとsshホストの組み合わせがある可能性のある周辺のケースに残されています。

8
Joel E Salas

これは、コンパイル時に_--with-rsh_構成オプションに指定された内容によって異なります。このオプションが指定されなかった場合のデフォルトはsshです。過去のある時点ではrshでしたが、rshであっても、多くのボックスでsshがデフォルトのrsh実装である可能性があるため、必要ない場合があります。私のすべてのマシン、たとえばreadlink -f $(which rsh)は、rshが/ usr/sbin/sshを指すシンボリックリンクであることを示しています

5
stew