職場では、すべての「物理」サーバーにアクセスするためにポータルサーバーを運営しています。デフォルトでは、「実際の」(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>