今、自宅で仕事をしているときは、自宅のコンピューターでいくつかの作業を行い(vnc接続が遅すぎるため)、仕事用のコンピューターでいくつかの作業を行います(そこでのみ可能であるため)。
したがって、両方のコンピューターで作業を保持するフォルダー(およびそのすべての内容)のコピーがあります。私はrsyncを使用してそれらを最新の状態に保ちます(ただし、ssh-gatewayサーバーを通過するssh-tunnel)。私はしばしば各方向に更新しなければならないので、それは時々混乱することがあります。そのため、他のコンピューターのファイルを誤って変更したために、一方のコンピューターで新しい作業を上書きしないようにするため、または他の競合の可能性を回避するために、ドライランを実行するのが好きです。
ただし、これは、コマンドを2回実行する必要があることを意味します。1回は-n
オプションあり、もう1回はオプションなしです。スクリプトを書くことで簡単に回避できますが、問題は、リモート接続するためにパスワードを2回入力する必要があることも意味します。
パスワードを1回入力するだけで、ドライランを実行し、「Enter」または「y」などを押して確認を待つ(またはキャンセルする)コマンドを1つだけ実行できるようにしたいと思います。次に、実際の同期を行います。これは可能ですか?
さらに明確にするために編集します。
私が正確にやろうとしていることは次のとおりです。最初に、ゲートウェイサーバーを介してsshトンネルを確立します:(ssh -N -L 2222:workcomputer:22 me@gatewayserver
のパスワードを要求されますme@gatewayserver
)。次にrsync -ruve "ssh -p 2222" me@localhost:~/folder ~/folder
、パスワードを要求するパスワードとme@workcomputer
、何度も入力する必要のないパスワードを使用します。
最終マシンへの最初のssh接続を実行し、ゲートウェイを-J
。でジャンプホストとして指定することにより、ゲートウェイを経由する接続をセットアップできます。追加-N -M
すると、この接続が開いたままになり、最終マシンへの将来のsshコマンドが最初の接続で多重化されます。
~/.ssh/config
ファイルの先頭に置きます:
ControlPath ~/.ssh/master-%r@%h:%p
次に、次のコマンドで1回接続します。
$ ssh -J me@gatewayserver -N -M me@workcomputer
ゲートウェイへのパスワード、次にワークコンピューターへのパスワードの入力を求められるはずです。接続すると、パスワードなしでコマンドを実行できます。
$ ssh me@workcomputer hostname
$ rsync -nv myfile me@workcomputer:/tmp
また-v
、最初のsshに追加して、何が起こるかを確認することもできます。-v
冗長な出力がで作られたソケットが表示されます~/.ssh
:
debug1: setting up multiplex master socket
debug1: channel 0: new [/home/me/.ssh/master-me@workcomputer:22]
これで、同じ宛先に別のsshが必要な場合、次の既存のsshが使用されます。
$ ssh me@workcomputer pwd
詳細な出力を提供します。
debug1: multiplexing control connection
debug1: channel 1: new [mux-control]
debug1: channel 2: new [client-session]
debug1: Sending command: pwd
debug1: channel 2: free: client-session, nchannels 3
debug1: channel 1: free: mux-control, nchannels 2
同じことがrsyncコマンドにも当てはまります。
$ rsync -nv myfile me@workcomputer:/tmp
sent 43 bytes received 19 bytes 124.00 bytes/sec
total size is 173 speedup is 2.79 (DRY RUN)
出力:
debug1: multiplexing control connection
...
debug1: Sending command: rsync --server -vne.LsfxC . /tmp
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加