ルーターに特定のユーザー名の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
(私の考えでは)これがこの問題に対する醜い解決策であることに言及したいと思います。