オフィスコンピュータからラップトップにファイルをダウンロードしたいです。
マイオフィスコンピュータから組織サーバーにSSHを実行し、サーバーからマイオフィスコンピュータにSSHを実行できます。
組織サーバーで許可される唯一のコマンドは、ssh、ssh1、および ssh2 です。
サーバーを介してオフィス(リモート)コンピュータからラップトップ(ローカル)コンピュータにファイルをダウンロードするにはどうすればよいですか?
答え1
最新のOpenSSH(8.0)を使用している場合地元の、あなたはそれを使用することができます-J
(ジャンプ)スイッチ:
scp -J user@intermediate user@target:/path
以前のバージョン(7.3以降)では、次のものを使用できます。ProxyJump
指示する、またはコマンドラインから:
scp -o ProxyJump=user@intermediate user@target:/path
またはssh_config
@Ángelの答えからわかるように、ファイルから。
ポート転送などの他のオプションがあり、ProxyCommand
以前のバージョンのOpenSSHでも使用できます。これらの内容は次のとおりです。OpenSSHはマルチホップログインをサポートしていますか?
答え2
以前の回答では、ProxyJumpディレクティブ(OpenSSH 7.3に追加)を使用して中間サーバー(通常はホストとも呼ばれる)を介して接続する方法について説明しましたが、コマンドライン引数としてのみ言及しました。
後で接続しないマシンではない場合は、設定するのが最善です~/.ssh/config
。
次のようなファイルを配置します。
Host office-machine
Hostname yochay-machine.internal.company.local
ProxyJump bastion-machine
Host bastion-machine
Hostname organization-server.company.com
...
ProxyJumpをサポートしていない以前のバージョンのOpenSSHを使用している場合は、それを同等のバージョンに置き換えることができます。
ProxyCommand ssh -W %h:%p bastion-machine
ローカルSSHバージョンが非常に古いバージョンでサポートされていない場合-W
:
ssh bastion-machine nc %h %p
最後の要件は、nc
要塞システムをインストールすることです。
SSHの良い点は、ファイルの各ターゲットを整理でき、すばらしくスタックされることです。したがって、すべてのツール(ssh、scp、sftp ...)でホスト名を使用します。office-machine
なぜなら、直接接続し、ssh_configに基づいて接続する方法を理解しているからです。すべてのホストに特定の要塞を通過させるなどのワイルドカードを使用することもできます。Host *.internal.company.local
これはすべてのホストに適用されます。正しく設定した場合、1ホップ接続と20ホップ接続の唯一の違いは、接続時間が遅いことです。
答え3
時にはパイプのみを使用することができます。その時はまさに今日です。
ssh -A user@host1 ssh user@host2 cat filename > filename
アップロードすることもできます。
ssh -A user@host1 ssh user@host2 cat \\\> filename < filename
はい、プロキシなどに関連する他のソリューションがありますが、これを行う方法を知っておくと便利です。