0

~/.ssh/config に次のようなホスト エイリアスを作成すると:

host myhost
    hostname myhost.mysubnet.mynet.com
    hostname myhost.mynet.com
    user igordcard

を使用して myhost.mysubnet.mynet.com に完全に接続できssh myhostます。ただし、このホスト名に到達できない場合は、接続されません。最初のホスト名のタイムアウトを設定して、2 番目のホスト名を自動的に試行できるようにする方法はありますか? そうでない場合、ほぼ同じ効果を達成するための他の方法はありますか?

ありがとうございました。

4

1 に答える 1

1

この回答は、damienfrancois によって提供されたページ リンクとそのページ内にある pcm による回答に基づいて、私が決定した回避策の正確な実装を反映しています。

の下~/.bashrcに、最後に次を追加しました。

nets=$(hostname -I)

if [[ "$nets" == *192.168.* ]]
then
  alias ssh='ssh -F .ssh/config.alt'
fi

接続されているネットワークインターフェイスのアドレスのリストを取得し、特定のネットワークアドレスのセグメントをそのリストと照合して、ネットワークに接続しているかどうかを確認し、接続している場合はssh、別の ssh 構成を使用するようにエイリアスを設定しますファイル。

この回避策は明らかに失敗する可能性があります。たとえば、ホストがネットワークからネットワークに移動したが、これらのネットワークが同じネットワーク プレフィックスを共有している場合です。ただし、私の特定のケース (および他の多くのケース) では、これで十分です。

于 2013-11-14T23:04:55.007 に答える