ユーザーに応じて別のサーバーにSSHを送信しますか?

ユーザーに応じて別のサーバーにSSHを送信しますか?

ルーターに特定のユーザー名のSSHログインを内部ネットワーク上の他のサーバーに転送させる簡単な方法はありますか?

たとえば、ssh router@urlと入力するとルーターにルーターとしてログインし、ssh steve@urlと入力するとサーバーにsteveとしてログインします。

また、簡単で使いやすいようにするには、サーバー側のソリューションである必要があります。

答え1

私はあなたが求めているのと同じことを見たことがありませんが、あなたの質問を正しく理解したら、コメントでChris Tangが言ったことをしたいと思います。ホストごとに異なるポートを使用します。たとえば、サーバーはポート 22 を使用し、ルーターはポート 222 を使用します。これにより、次のようにサーバーにログインでき、ssh steve@urlルーターでは次のようにログインできますssh -p 222 router@url

OpenSSHクライアントには、エイリアスを定義できる構成ファイルがあります。 SSH経由で頻繁に接続する場合に便利です。以下は2つの最小例です(「url」を実際のURLに置き換えることを忘れないでください)。

# ~/.ssh/config

Host server
    User steve
    HostName url
    Port 22
Host router
    User router
    HostName url
    Port 222

これで、サーバーにSSHとして接続ssh serverし、ルーターにSSHとして接続できますssh router

それでも1つのポートでこれを行う場合は、サーバーにSSHを接続してからサーバーからルーターへ(またはその逆)SSHを実行することをお勧めします。または、次のユーザーを作成できます。ルーターサーバーからルーターに自動的にログインするログインスクリプトを作成します。ログインシェル(およびシステムに言及していない残りのソフトウェア)に応じて、次のことができます。

# Create a new user on the server
useradd -m router -p MyPassWordABC123

# Log in as the new user
su router

# Generate a new SSH key
ssh-keygen -t rsa -C "router@server" # You can safely accept the defaults.

# Add your key to authorized keys on the router to be able to log in without password
ssh-copy-id [email protected]
# Try logging into the router to verify this works

# Add a startup command to your .profile (depends on your shell, .profile works for at least bash)
echo "ssh [email protected]" >> ~/.profile

(私の考えでは)これがこの問題に対する醜い解決策であることに言及したいと思います。

関連情報