SSH-туннель с единственным паролем назначения (вместо двух паролей)?

SSH-туннель с единственным паролем назначения (вместо двух паролей)?

У меня есть сервер назначения, работающий под управлением Ubuntu 14.04 (назовем его destserver), и туннельный сервер, также работающий под управлением Ubuntu 14.04 (назовем его bridgeserver), который имеет фиксированный адрес IPV4. В настоящее время я настроил его так, что при загрузке 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

... и это работает нормально, за исключением того, что у меня запрашивают два набора паролей:

$ 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

... и, похоже, теперь это работает, поскольку у меня запрашивается только один пароль:

$ 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

Я не совсем понимаю, зачем нужно было это двоеточие, поэтому мне бы хотелось прочитать правильный ответ по этому поводу...

Связанный контент