bashエイリアス/関数のSSHが2回[重複]

bashエイリアス/関数のSSHが2回[重複]

職場では、すべての「物理」サーバーにアクセスするためにポータルサーバーを運営しています。デフォルトでは、「実際の」(Web)サーバーの1つにSSHで接続する必要がある人は、まずポータルにSSHで接続するため、次のようになります。

mike@localhost#    ssh mike@portal
#ssh login notice stuff blah blah
mike@portal#    ssh mike@webserver

私はこれら2つのステップを1つにまとめるbashエイリアスまたは関数を作成しようとしています。私は間違いなくシステム管理者ではないので、追加のソフトウェアをインストールせずにできるだけ簡単に保つことをお勧めします。

以下を試しましたが、必要に応じて進行しません。

ssh mike@portal; ssh mike@webserver #terminates on terminal for portal
ssh mike@portal `ssh mike@webserver` #hangs
ssh mike@portal ssh mike@webserver #connects, but gives error "pseudo-terminal will not be allocated because stdin is not a terminal"

どんなアイデアや解決策がありますか?

答え1

ssh mike@portal ssh mike@webserver 実行

キーを使用して接続すると仮定すると、インタラクティブなパスワードを使用する場合は、より多くのフラグが必要です。

答え2

次の項目を入力してください~/.ssh/config

Host webserver
    ProxyCommand ssh -A -e none portal nc %h 22

これで、ssh webserver機能する準備が整いました。 Netcatがコンピュータにインストールされている必要がありますportal

答え3

これは非常に一般的な要件です。

一方通行(http://www.eng.cam.ac.uk/help/jpmg/ssh/two-hop-tunnel.html)はトンネルを使用しています。

ssh -f -L 51526:server.example.com:22 -1 gateway.example.com sleep 3600

それから

ssh -p 51526 localhost

答え4

複数のWebサーバーについて話しているようです。したがって、最良の方法は、おそらく次の$HOME/.ssh/config

Host portal
    Hostname portal
    User mike
    StrickHostKeyChecking yes
    LocalForward 1024 webserver1:22
    LocalForward 1025 webserver2:22
    LocalForward 1026 webserver3:22
    ...

Host webserver1
    Hostname localhost
    Port 1024
    User mike

Host webserver2
    Hostname localhost
    Port 1025
    User mike

...

その後、接続をインスタンス化できます。

ssh portal

その後、次を使用してすべてのWebサーバーに接続できます。

ssh webserver<n>

関連情報