たとえば、リモートホストがローカルシステムにあるかのようにアドレスを指定するSSHトンネルを作成できますか?次の擬似例を入力してください。地元のお好みの効果を得る。
- データベースのコピー:
mysqldump remote | mysql local
またはmysqldump local | mysql remote
- リモートファイルにテキストを追加する:
echo blah >> remote:file.txt
- リモートファイルの変更:
sed ... remote:file.txt
- リモートコマンドを実行します。
apk add blah
単一の接続が不可能な場合、これらのタスクを実行する最も便利な方法は何ですか?
答え1
リモートのmysqlにアクセスするには、転送を通じてlocalhost:12345を使用できます。
ssh -Nf -L 12345:localhost:3306 user@remote
ファイル操作の場合は、sshfsを介してリモートホストをマウントできます。
mkdir /tmp/remote
sshfs user@remote:/ /tmp/remote
echo blah >> /tmp/remote/file.txt
sed ... /tmp/remote/file.txt
リモートコマンドは通常SSHを介して実行されます。
ssh user@remote command ....
単一の接続ですべてを行うことができますこれを ~/.ssh/config に追加すると:
ControlMaster auto
ControlPath ~/.ssh/masters/%l%r@%h:%p
最初のSSH接続はデフォルト接続になり、次の接続はそれを再利用します。新しいスレーブ接続は非常に迅速に提供されます。初期キー交換オーバーヘッドなどはありません。