使用されているポートによって異なるSSHデフォルト値を持つことはできますか?

使用されているポートによって異なるSSHデフォルト値を持つことはできますか?

同じホスト名に複数のSSHサーバーがあり、1つのポートで実行されているSSHサーバーのデフォルトのユーザー名を使用し、2番目のSSHサーバーに別のポートを使用したいと思います。可能ですか?

答え1

からman sshd

-f config_file は設定ファイルの名前を指定します。デフォルトは /etc/ssh/sshd_config です。設定ファイルがない場合、sshd は起動を拒否します。

したがって、sshdサーバーインスタンスを呼び出すには、別々の構成ファイルを使用します。

答え2

優れた解決策はありませんが、うまくいきMatch execますssh_config

からman ssh_config

exec キーワードは、ユーザーシェルで指定されたコマンドを実行します。コマンドが終了状態 0 を返した場合、条件は true と見なされます。空白文字を含むコマンドは引用符で囲む必要があります。コマンドの次の文字シーケンスは、実行前に拡張されます。 '%L'はローカルホスト名の最初のコンポーネントに置き換えられ、'%l'はローカルホスト名(ドメイン名を含む)に置き換えられます。 %hはターゲットホスト名に置き換えられ、 '%n'はコマンドラインで指定された元のターゲットホスト名に置き換えられます。 '%p' は宛先ポート、 '%r' はリモートログインユーザー名、 '%u' は ssh(1) を実行するためのユーザー名です。ユーザーのユーザー名。

sshこれは、実行を/usr/bin/testポート(ここでは2222)と一致させることができることを意味します。

Match host "your_host" exec "test 2222 -eq %p"
    User another_user

あるいは、別のポート上のSSHサーバーの別名/別名を定義することもできます。

Host server_with_other_port
    Port 2222
    User another_user

ssh server_with_other_portその後、別のデフォルトポートとデフォルトのユーザー名を使用して2番目のSSHサーバーに接続できます。

エイリアスソリューションに関する注意点は、デフォルトのユーザー名は、実際のサーバー名またはIPアドレスを使用する場合ではなく、エイリアスを使用する場合にのみ適用されることです。

関連情報