複数のSSHホストエイリアスを持つことはできますか? [コピー]

複数のSSHホストエイリアスを持つことはできますか? [コピー]

私は時々ホームネットワークの内部または外部にあるかもしれないラップトップを持っています。ネットワーク内のコンピュータにSSHで接続する必要がある場合、接続は非常に簡単です。

localhost $ ssh machinelearning

次の端末にアクセスしようとすると外部私のネットワークを使用するには、ルーターに接続してからそこからSSHを接続する必要があります。

localhost $ ssh router.mytotallyuniquedomain.com
router $ ssh machinelearning

後者のコマンドを実行するショートカットがあったことを覚えていますが~/.ssh/config、今はそれが何なのか覚えていません。

次のように複数のホスト名または接続タイプを提供する方法はありますか?

$ ssh machinelearning

machinelearningSSHは最初にローカルネットワーク上のホストに接続し、次にrouter.mytotallyuniquedomain.com長いホスト名を入力せずにトンネリングを試みますか?

答え1

方法#1 - ProxyCommandとnetcat

私は$HOME/.ssh/configこれを促進するためにこの設定を使用します。

Host intserver1-o intserver2-o intserver3-o
    ProxyCommand ssh [email protected] nc `echo %h|sed 's/-o//'` %p

これにより、ssh intserver2-oどこからでもこの内部サーバーにアクセスできます。家にいるときはLANを使用してくださいssh intserver1

メモ:上記のヒントncでは、extserver1にnetcat()をインストールする必要があります。

方法 #2 - 入れ子になった SSH

または、次の方法を使用できます。

$ ssh -t -l gatewayuser gatewayserver "ssh -l serveruser internalserver"

デフォルトでは、このメソッド内にSSH呼び出しをネストします。

方法 #3 - ProxyCommand と ssh -W

最新バージョンのSSH(5.4+)では、スイッチを通すssh代わりに使用できます。nc-W

Host TARGETHOST
ProxyCommand ssh -W %h:%p PROXYHOST

&はホスト名ポートのマクロ%hです。%pTARGETHOST

関連情報