
Ubuntu 14.04 を実行している宛先サーバー ( と呼ぶことにしますdestserver
) と、同じく Ubuntu 14.04 を実行しているトンネル サーバー ( と呼ぶことにします) があり、固定 IPV4 アドレスを持っています。現在は、起動時にを使用してに接続するようにbridgeserver
設定しています。destserver
autossh
bridgeserver
exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
ここではキー認証を使用しているため、上記のコマンドはパスワードなしで完了できます。これで、どこかのパブリック ネットワーク上のラップトップから次の操作を実行できるようになりました。
ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
... これは問題なく動作しますが、2 セットのパスワードの入力を求められます。
$ ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
mybridgeuser@BRIDGESERVER_IP_ADDR's password:
mydestuser@localhost's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...
ここで、この宛先サーバーを他の人が利用できるようにしたいのですが、ブリッジ サーバー (個人的にレンタル) の認証詳細は共有したくないので、 のパスワードは共有したくありません。そこで、上記のような接続を確立したいと思います。ただし、 のユーザー (たとえば)mybridgeuser
のパスワードのみが尋ねられる場合は除きます。mydestuser
destserver
の現在の設定を変更せずに、からのユーザー資格情報のみを使用して( からのパスワード プロンプトなし)ssh
に接続できるように、クライアントで使用できる構文はありますか? セットアップの変更が必要な場合、セットアップの変更内容はどのようなものになりますか。また、ラップトップでのコマンドはどのようになりますか?destserver
destserver
bridgeserver
autossh
ssh
答え1
うーん、これについては間違っているかもしれませんが、init ファイルに次のように書きました:
exec autossh -M 0 -N -R :2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
... の代わりに:
exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR
... 注意してください。以前は ; だった部分の前にコロンを追加しただけです2222:localhost:22
。これで、ラップトップでは次のように発行できます。
ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
... パスワードを 1 つだけ要求されるので、今は機能しているようです。
$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
mydestuser@BRIDGESERVER_IP_ADDR's password:
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...
...以前はそれができなかったのに?!:
$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
ssh: connect to host BRIDGESERVER_IP_ADDR port 2222: Connection refused
このコロンがなぜ必要だったのかよく分からないので、それについての適切な回答を読みたいのですが...