自宅にいないときにホームネットワーク上のコンピュータにSSH経由で接続できるように、SSHとルーターのポート転送を設定しました。現在、私のファイルには2つのエントリがあります。.ssh/config
1つはホームネットワークにいるときのための項目、もう1つはホームネットワークにいないときのための項目です。
Host mycomputer
HostName 192.168.X.X
Host mycomputerathome
HostName my.no-ip.dynamic
これはうまくいきますが、自分自身が仕事をより簡単にできるかどうか疑問に思います。最初のホスト名エントリが失敗した場合は、2番目のホスト名エントリに置き換えられるように、複数のホスト名エントリを一覧表示する方法があります。
Host mycomputer
HostName 192.168.X.X
HostName my.no-ip.dynamic
これにより、まず自分のローカルネットワーク上のホストに接続しようとし、そのホストが存在しない場合は、IPを持たない動的ホスト名を使用して接続を試みます。両方のホスト名を入力しようとしましたが、ssh mycomputer
何もしないようにブロックのみを実行しました。
鍵を使用するためにパスワード認証をオフにしたため、ホームネットワークにいないときに誤ってローカルネットワーク上のコンピュータに接続すると、パスワードは機能しません。
最初のホスト名が機能しない場合に試みる代替ホスト名を指定できますか?
ベストアンサー1
醜いですが、私の考えではできるこれを行うには、ポートノッキングの終了ステータス基準を使用しますexec
。Match
Host mycomputer
Match exec "nc -z 192.168.1.11 %p"
HostName 192.168.1.11
Match !exec "nc -z 192.168.1.11 %p"
HostName my.no-ip.dynamic
これが「あなたの」ホームネットワークにあることを実際に知らせるわけではありません。これは、同じアドレス/ポートでリッスンするサービスがある同じアドレス範囲を持つプライベートLANセグメントにあることです。