GNU/Linux >> Linux の 問題 >  >> Linux

中間マシンを介してscpする方法は?

.ssh/config で次のことをお勧めします :

Host C
    User user
    ProxyCommand ssh -W %h:%p [email protected]

ホスト B が信頼されておらず、scp と sftp で動作する場合は、あまり安全ではありません。


この回答で説明されているように、 ProxyCommand を使用できます ssh を持つディレクティブ ホストは、3 番目のホストに透過的にバウンスします:

次の 3 つのホストがあるとします:

  • workstation.example.com - これは、物理的に作業しているマシンです
  • proxy.example.com - これは、SSH トラフィックをルーティングしているマシンです
  • endpoint.example.com - これは、トラフィックが最終的に到達する場所です

~/.ssh/configworkstation で 、以下を追加:

Host endpoint
    User endpointUser # set this to the username on the endpoint host
    HostName endpoint.example.com
    ProxyCommand ssh [email protected] nc %h %p 2> /dev/null

proxy について ホスト、nc を確認してください (netcat) がインストールされています。

次に、workstation で 、 ssh endpoint できます または sftp endpoint プロキシ ホストを介してマシンに透過的にプロキシされます。 scp も機能します。


認証に証明書を使用する必要がある場合でも、比較的簡単に実行できます (AWS 環境では一般的です)。

以下のコマンドは、server2 の remotePath から localPath のマシンにファイルを直接コピーします。内部的に、scp リクエストは server1 経由でプロキシされます。

scp -i user2-cert.pem -o ProxyCommand="ssh -i user1-cert.pem -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

代わりにパスワード認証を使用する場合は、試してみてください

scp -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

両方のサーバーで同じユーザー認証情報を使用する場合:

scp -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Linux
  1. SSH経由でrootユーザーのログインを無効にする方法

  2. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  3. Ssh – Sshを介してファイルをリモートで編集する方法は?

  1. Ssh – Sshが許可を求めるのを避ける方法は?

  2. 中間マシンを介してScpする方法は??

  3. SSH キーを別のマシンに転送するにはどうすればよいですか?

  1. SSHトンネリングを使用して制限付きサーバーにアクセスする方法

  2. 中間ホスト経由でファイルを再同期する

  3. SSH 経由でログインしているかどうかを確認するにはどうすればよいですか?