Использование AWS EC2
Обратный туннель SSH, инициированный с удаленного компьютера на AWS:
/usr/bin/autossh -M 0 -N -R 19999:localhost:22 ec2-user@ec2.aws.com -v -i cloud.pem
Добавлен порт 19999 в группы безопасности AWS.
Проверено, могу ли я подключиться по telnet к AWS:
telnet: Unable to connect to remote host: Connection refused
Однако, если я уберу порт 19999 в группах безопасности, я получу другой ответ:
telnet: Unable to connect to remote host: Connection timed out
Поэтому я предполагаю, что проблема связана с хостом AWS, а не с брандмауэром на другом компьютере.
Затем я проверяю, есть ли sshd
туннель запущен на стороне AWS в ответ на мое подключение. netstat
предполагает, что служба прослушивает:
tcp 0 0 127.0.0.1:19999
Но все же я получаю сообщения об отказе от подключения Что еще я могу проанализировать? Я не мог найти ни одного sshd
журналы на машине AWS. /var/log/secure
не регистрирует эти неудачные попытки подключения.
Насколько я понимаю, вы хотите создать обратный туннель к экземпляру EC2, а затем разрешить внешним клиентам подключаться к этому указанному порту 19999.
Прежде всего, когда вы запускаете свою команду, например, предоставленную, как вы можете видеть с помощью netstat, порт прослушивает интерфейс обратной связи, поэтому, чтобы это работало по отношению к посторонним, вам необходимо добавить адрес привязки следующим образом:
/usr/bin/autossh -M 0 -N -R 0.0.0.0:19999:localhost:22 ec2-user@ec2.aws.com -v -i cloud.pem
Это все равно приведет к ошибке, поэтому следующее, что вы действительно ищете, - это директива GatewayPorts, включенная на сервере sshd, работающем на EC2.
Вы должны отредактировать / и т.д. / SSH / sshd_config и убедитесь, что у вас есть:
GatewayPorts clientspecified
Определить внутри конфига. Перезагрузите сервер sshd и используйте указанную выше команду. Более подробное объяснение этого можно найти по адресу: Обход корпоративного межсетевого экрана с обратной переадресацией портов ssh