1

У меня есть машина с именем ic которой я могу подключиться. Есть другая машина, fw , которая находится в совершенно другой VLAN, и я не могу с ней разговаривать. ic находится как в моей VLAN, так и в VLAN, которую использует fw , и поэтому моя обычная процедура для sshing на fw - это ssh в ic и оттуда ssh в fw . Если бы я хотел написать сценарий этого действия, как я мог заставить его работать?

Я пробовал ssh root@ic "ssh root@fw" , но это приводит к тому, что сообщение Pseudo-terminal will not be allocated because stdin is not a terminal , и затем я получаю три сообщения от fw , предположительно, потому что он имеет нулевой ввод:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Какой лучший способ написать это?

2 ответа2

4

По умолчанию ssh не выделяет pty, когда дается команда. Для интерактивного использования вы можете переопределить это, используя опцию -t .

Для аутентификации, если вы используете открытые ключи и правильно настроенный ssh-agent , вы можете использовать опцию -A чтобы включить переадресацию агента.

ssh -t -A user@ic ssh root@fw

(Что это за использование root везде? Не ленитесь, создайте аккаунт.)


Другой метод, использующий пересылку TCP через SSH:

Сначала установите соединение с ic с помощью опции -L (local tunnel):

ssh -L 7890:fw:22 -fN user@ic

Теперь все соединения с localhost:7890 будут перенаправлены через ic на fw:22. (Порт 7890 является произвольным; вы можете выбрать любой неиспользуемый порт, который вам нравится.)

(Параметры -fN заставят это соединение продолжать работать в фоновом режиме.)

Во-вторых, подключитесь через туннель:

ssh root@localhost -p 7890
0

Другой метод использует ProxyCommand:

ssh root@fw -o "ProxyCommand=ssh root@ic nc $FW_VLAN_IP %p"

Это подключается к ic , создает TCP-прокси netcat для fw и предоставляет его локальному клиенту ssh , что означает, что он будет использовать ваши локальные системы аутентификации вместо удаленных.

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