web-dev-qa-db-ja.com

rsyncを使用するときに別のSSHポートを指定することは可能ですか?

次のコマンドを試してみました。

rsync -rvz --progress --remove-sent-files ./dir user@Host:2222/path

SSHはポート2222で実行されていますが、それでもrsyncはポート22を使用しようとした後、パスが見つからないことを訴えています。もちろん、それは存在しません。

非標準のsshポートでリモートホストに同期することが可能かどうかを知りたいのですが。

321
Ketema

Rsyncを実行しているホストで、ssh設定ファイルでポートを設定します。

cat ~/.ssh/config
Host host
    Port 2222

その後、ssh上のrsyncはポート2222と通信します。

rsync -rvz --progress --remove-sent-files ./dir user@Host:/path
112
Joao Costa

コマンドラインは次のようになります。

rsync -rvz -e 'ssh -p 2222' --progress ./dir user@Host:/path

これはうまく機能します - 私は新しいファイアウォールルールを必要とせずにいつも使っています - SSHコマンド自体は引用符で囲まれていることに注意してください。

550
klapa

特定のSSHポートを介してファイルを送信する必要がある場合

rsync -azP -e "ssh -p PORT_NUMBER" source destination

rsync -azP -e "ssh -p 2121" /path/to/files/source user@remoteip:/path/to/files/destination
13
Techie

"rshオプション"を使用してください。例えば。:

rsync -avz --rsh='ssh -p3382' root@remote_server_name:/opt/backups

参照してください: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/

ちょっとオフトピックですが、誰かに役立つかもしれません。パスワードとポートを渡す必要がある場合は、sshpassパッケージを使用することをお勧めします。コマンドラインコマンドは次のようになります。sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_Host/

2
Tomas

Rsyncはデーモンとして動作しますTCPポート873、保護されていない、SSHとは関係ありません

Rsyncの人から。

プッシュ:rsync [OPTION ...] SRC ... [USER @]ホスト:DEST

あなたの命令が正しいと信じるように導きます:

rsync -rvz --progress --remove-sent-files ./ディレクトリのuser @ Host:2222/path

しかし、それはポート2222でRsyncデーモンに接続するように指示していますが、そこにはありません。

前述のとおり、正しい構文はRsyncにカスタムSSHコマンドを使用するように指示し(-p 2222を追加)、rsyncに対して(リモートSSH側で)TCP 873に接続し続ける(セキュアSSHトンネルを使用) 。

rsync -rvz --progress --remove-sent-files -e "ssh -p 2222" ./ディレクトリuser @ Host/path

0
kevinf

私はマイク Hike Hostetler's サイトでこの解決策を見つけました。

# rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/
0
Rusty1