Я пытаюсь создать SSH-сервер в машине за маршрутизатором.
Сначала я попытался связать SSH с моим общедоступным IP-адресом:
ssh -R 10002:localhost:22 <ip_address>
Затем мне будет предложено ввести пароль, однако мой пароль пользователя не работает.
Очевидно, что я знаю свой пароль пользователя, поэтому мне кажется, что он пытается аутентифицироваться на другом компьютере в той же сети.
Любые предложения по исправлению этого вопроса?
Это также поможет мне в любой альтернативе, как создать SSH-сервер за маршрутизатором, когда у вас нет доступа к маршрутизатору.
Все порты в iptables открыты.
UPDATE
Как было предложено Thomas Oster, я пробовал следующее.
В машине за маршрутизатором я выполнил следующую команду:
$ ssh -R10002:localhost:22 <remote_public_ip_address> -l <my_remote_server_username>
<remote_ip_address>
- это remote_ip_address сервера с общедоступным IP-сервером и SSH-сервером, на котором у меня есть полный контроль.
<my_remote_server_username>
является именем пользователя удаленного сервера.
После этого я попытался подключиться с удаленного сервера к серверу за маршрутизатором следующим образом:
$ ssh -p 10002 <remote_public_ip_address>
Однако эта команда отображает следующий вывод:
ssh: connect to host <remote_public_ip_address> port 10002: Connection refused
Итак, я открыл порт 10002 в брандмауэре iptables, используя следующую команду:
sudo iptables -A INPUT -p tcp --dport 10002 -j ACCEPT
После этого я снова выполнил команду, но он отображает одно и то же сообщение об ошибке.
В моей машине за маршрутизатором у меня все порты открыты в iptables.
ОБНОВЛЕНИЕ 2
Вы должны разрешить переадресацию портов в файле /etc/ssh/sshd _config remove_public_ip_address сервер
Я попытался разрешить перенос портов в файле sshd_config, добавив эту команду:
LocalForward 10002 <my_remote_public_server_ip>:22
Но он дал мне это сообщение об ошибке:
Bad configuration option: LocalForward
После "ssh -R...." вы оставили окно открытым?
После выполнения этой команды он подключается к удаленному общедоступному компьютеру, и да, я оставил окно открытым.
Можете ли вы использовать локальный хост ssh -p 10002 на общедоступном сервере после туннель создается?
Да, если я запустил эту команду на общедоступном сервере, она подключится после запроса мне учетных данных.
Попробуйте "ssh localhost" на машине за маршрутизатором, чтобы проверить, работает ли sshd и работает.
Это также работает.
ОБНОВЛЕНИЕ 3
Наконец-то я смог заставить его работать (еще раз спасибо Thomas Oster)
Мы будем работать с тремя машинами:
Целевая машина: к которой мы хотим подключиться.
Средняя машина: сервер, действующий как посредник для подключения (Linode в моем случае)
Домашний компьютер: где мы будем обращаться к машине назначения.
Это шаги, которые я выполнил
Шаг 1:
[destination computer]$ vi /etc/ssh/sshd_config
Добавьте параметр GatewayPorts:
GatewayPorts yes
Перезапустите ssh.
Шаг 2:
[destination computer]$ ssh -R 4040:localhost:22 [email protected]
Это свяжет ваш общедоступный компьютер с компьютером назначения через порт 4040
Он подключится к среднему компьютеру и запросит терминал, вы должны оставить эту вкладку открытой.
Шаг 3:
Подключение из дома:
ssh [email protected] -p4040
Или подключитесь к средней машине:
[home computer]$ ssh [email protected]
[middle computer]$ ssh [email protected] -p4040