Чтобы получить доступ к конкретной машине Linux, я должен сначала ssh к предоставленному серверу шлюза, однако я никогда не получаю командную строку на сервере шлюза. Сразу же после входа в систему на шлюзе у меня запрашивается имя нужной машины назначения за шлюзом (их несколько), и если я предоставляю правильное имя машины, мне затем предлагается ввести имя пользователя для запрошенной машины за шлюзом, а затем Я прямо сброшен в командную строку на запрошенной машине за шлюзом.

Можно ли настроить такой сценарий входа в систему без пароля с моего клиентского компьютера на конечный компьютер за шлюзом?

Как насчет клонирования репозиториев через ssh на целевой машине за шлюзом? Я могу подключиться к файловой системе, смонтированной на целевом компьютере через шлюз (gw.foobar.com), следующим образом:

scp foo.txt myusername@gw.foobar.com:/home/myusername

Однако если я попытаюсь

hg clone myrepository ssh://myusername@gw.foobar.com//home/myusername

Мне будет предложено ввести пароль для шлюза, а затем:

sshgate: недопустимая команда (тип сеанса) 'HG'
прервать: не удалось создать удаленное репо!

1 ответ1

1

Позволяет ли шлюз использовать переадресацию портов вообще? Что произойдет, если вы выполните ssh gateway -v -W internalhost:22 . Если эта команда работает, то это легко. Просто используйте его в качестве прокси-команды. Отсутствие интерактивной оболочки на вашем шлюзе не обязательно означает, что переадресация портов отключена. Переадресация портов происходит на уровне протокола SSH и не зависит от того, какая оболочка запускается при входе в систему вообще.

В вашем .ssh/config

Host farhost
  ProxyCommand ssh gatewayhost -W internalhost:22

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .