
同じホスト名に複数の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アドレスを使用する場合ではなく、エイリアスを使用する場合にのみ適用されることです。