.ssh/configホストに複数のホスト名エントリがありますか?

.ssh/configホストに複数のホスト名エントリがありますか?

自宅にいないときにホームネットワーク上のコンピュータにSSH経由で接続できるように、SSHとルーターのポート転送を設定しました。現在、私のファイルには2つのエントリがあります。.ssh/config1つはホームネットワークにいるときのための項目、もう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

醜いですが、私の考えではできるこれを行うには、ポートノッキングの終了ステータス基準を使用しますexecMatch

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セグメントにあることです。

おすすめ記事