私は持っていますサムコンピュータ。
コンピュータ1そしてコンピュータ2プライベートLANでコンピュータ1私たち全員が知っているようにコンピュータ2〜のように192.168.0.2
コンピュータ2そしてコンピュータ3他のLANでコンピュータ2私たち全員が知っているようにコンピュータ3〜のように192.168.123.101
どうすれば接続できますか?コンピュータ1~からコンピュータ3SSH経由。
次のようなものがありますか?
ssh [email protected] -via [email protected]
答え1
ssh -o 'ProxyCommand ssh -W %h:%p [email protected]'
その後、簡単に実行できますssh PC1
。
エイリアスで使用する方が良いです~/.ssh/config
。
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p [email protected]
-W
そのオプションがない古いバージョンのOpenSSH(これは5.4以下を意味すると思います)の場合は、次の点を確認してください。インターネット猫PC2で利用可能
Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh [email protected] nc %h %p
答え2
SSHを使用する明確なソリューションがあります。
~/.ssh/config
次のコンテンツを含めるようにローカルコンピュータに設定します。host WhatYouWillCallTheConnection hostname the.gateway.server.address.com user YourUsernameOnTheGateway
接続するゲートウェイとターミナルサーバーにローカルクライアントの公開鍵があることを確認してください。
~/.ssh/authorized_keys
ゲートウェイマシンでは、
~/.ssh/authorized_keys
次のようにクライアント公開鍵を指定する行の先頭に必要なコマンドを追加するように変更する必要があります。command="ssh -A [email protected]" ...yourPublicKey....
-A
常にパスワードを送信するのが好きではない場合は、プロキシを渡すことができます。
そうすると、そのようなことをするたびにssh WhatYouWillCallTheConnection
ゲートウェイを通過して透明に反対側にあるサーバーに接続されます。
答え3
ポート転送は便利です。
PC1から:
~# ssh -fN -L 22:PC3:7777 -l <user> PC2
7777 は、まだ使用中でない限り、どのポートでも構いません。私はこの番号と+1で管理できる「注文」(7778、7779など)が好きです。
これを完了すると、PC1のローカルポート7777からPC3のポート22まで「透明な」トンネルが作成されます。ただ発行してください:
~# ssh -l <user> -p 7777 localhost
そしてPC3になければなりません。
SOCKS プロキシを設定する場合は、-D を使用してポートを動的に転送することもできます。
~# ssh -D <someport> -fN -L 22:PC3:7777 -l <user> PC2
乾杯!
答え4
私が知っている唯一の解決策はsshスクリプトです邪悪:
Belierを使用すると、SSH接続を介してリモートコンピュータでシェルを開くか、コマンドを実行できます。 Belierの主な機能は、作業を完了する前に複数の中間コンピュータを拡張する機能です。
私はこれをしばらく前に見つけました。README.sshhopMITリンカーン研究所のホームページに掲載されていますが、これ以上情報を見つけることができません。もっと知っている人はいますか?