私は幸せなユーザーでrsync -e ssh
あり、私のコンピュータとリモートホスト間のデータを同期するために使用します。
rsync -avz -e ssh me@hostA:~/folder ~/folder
これがこれまでに必要なものです。
私は今、より複雑な構成のAccessを使用しています。 nowが~/folder
開いていますが、hostB
自分のhostB
コンピュータから直接アクセスできず、間接的にしかアクセスできないとしますhostA
。
したがって、hostB
hostA
hostB
~/folder
rsync
今私の質問は私のコンピュータとhostB
。
残念ながら、これは私が使用する必要がある設定です。データ自体を一時的に保存することは不可能であると仮定しますhostA
。
答え1
Tunnelbという新しいエントリを作成します~/.ssh/config
。
Host tunnelb
HostName hostB
User user
ProxyCommand ssh user@hostA nc %h %p
最新バージョンのSSHがある場合はProxycommand ssh user@hostA -W %h:%p
それを使用できます。これは依存しないので好まれる。nc
rsync -e ssh tunnelb:~/folder ~/folder
これで定義された項目を使用するので、直接使用できます~/.ssh/config
。
答え2
変形1:
まず、ホストAでSSHを永久に起動し、他の端末でローカルポートの転送を実行します。たとえば、
ssh -N -v -L 22022:hostB:22 hostA
次に、sshを使用してrsyncをlocalhost:22022
。
Host hostB
HostName localhost
Port 22022
変形2:
以下を含むスクリプト-e ssh
に置き換えます。-e
ssh hostA 'ssh hostB' "$@"
やってみませんので詳細は別途説明いたします。