次のようにして server2 に接続します。
home$ ssh server1
server1$ ssh server2
server2$
また、時々このように scp を実行する必要があり、これには余分な時間がかかります。
home$ ssh server1
server1$ scp server2:file .
server1$ exit
home$ scp server1:file .
自宅から 1 つのコマンドでこれを行う方法はありますか? 公開キー認証を使用していますが、パスワードでも機能すると便利です。
答え1
MobaXtermを使用することをお勧めします。
- ここからダウンロードしてください:http://mobaxterm.mobatek.net/download-home-edition.html
- 「新しいセッション」をクリックし、「ssh」を選択します
- 「リモートホスト名」フィールドに「server2」のコンピュータ名またはIPアドレスを指定します。
- 「SSHバウンス(ゲートウェイSSHサーバー経由で接続)」フィールドに「server1」のコンピューター名またはIPアドレスを指定します。
これにより、新しい SSH コマンドが「server2」コンピューターに直接起動されます。ウィンドウの左側には、グラフィカル SFTP ファイル転送ツールも用意されており、これも「server2」に直接接続されます。
答え2
SSH トンネリングは次のように使用できます。
ssh -f server1 -L 8888:server2:22 -N
これにより、ローカル マシンのポート 8888 でソケットが開かれ (他のプロセスがそのポートを使用していないと仮定)、server1 を介して server2 (SSH がポート 22 で実行されていると仮定) への接続がトンネルされます。-N
および-f
フラグは、SSH にバックグラウンドにフォークするように指示します (トンネルを停止する場合は、プロセスを強制終了する必要があります)。
これで、server2からscpファイルを取得することができます。
scp -P 8888 localhost:file
答え3
home$ server1 "ssh server2"
しかし、より多くのサーバーが関係する場合、コマンド文字列をエスケープするのは困難です。
答え4
ダイナミックトンネルでSOCKS5を使用する
最初のマシンへの動的 SSH トンネルを作成します。次に、最初の接続を SOCKS5 プロキシとして使用して、リモート ネットワーク上の 2 番目のホストにアクセスします。
これは putty 経由で簡単に設定できます。プロキシは何度でも再利用できます。一部のプログラムは SOCKS5 を直接サポートします。putty や ssh などです。
Linux では、プロキシチェーンを使用して、SOCKS5 をネイティブにサポートしていないプログラムをプロキシ化できます。Windows では、Proxycap が便利です。RDP でうまく機能します。
Putty を使用してこれを設定するには:
最初のホスト設定ページのトンネルの下で:
- 動的トンネルを作成する
- ポートを9050に設定します。
- 宛先部分は動的であるため、空白のままにしておきます。
- 設定を保存します。(セッション ページから実行します。)
次に、2 番目のホストの構成で、プロキシの下に次の項目を設定します。
- SOCK55を選択します。
- プロキシホスト名を127.0.0.1に変更します
- ポートを9050に設定する
- その後、セッションの残りを通常通りに設定します
- 設定を保存する
2番目のホストに接続するには、まず最初のホストに接続してログインする必要があります。その後、プロキシされたSSH接続を介して2番目のホストに接続できるようになります。
ssh_config エントリを使用して、コマンドラインからこれを実行することもできます。 http://www.undeadly.org/cgi?action=article&sid=20070925181947