Назад | Перейти на главную страницу

Быстро подключитесь по SSH к другому ящику через SSH

Мне нужно загрузить и скомпилировать данные на удаленном компьютере, который доступен только в определенной сети, к которой я могу получить доступ через SSH.

Так, например, я выполняю следующие шаги:

me@mymachine$ ssh user@network_gateway
user@network_gateway$ ssh seconduser@targetmachine
seconduser@targetmachine$ #do stuff

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

Вы можете настроить свой .ssh/config для автоматического создания туннеля для targetmachine. Однако для того, чтобы это работало без пароля, вам необходимо настроить аутентификацию с открытым ключом на обоих хостах и ​​пересылку агента на шлюзе.

Настройте его так, чтобы подключение к targetmachine проксируется через network_gateway:

Host targetmachine
  HostName targetmachine.company.com
  ProxyCommand ssh network_gateway -W %h:%p

Тогда можно оформить:

$ ssh targetmachine

для подключения напрямую. Больше информации в ssh_config(5) справочная страница.

SSH примет команду для выполнения на удаленном компьютере. Например, для SSH на server2 через server1:

ssh alice@server1 "ssh bob@server2"

После этого вы сможете вводить команды в командной строке server2.

Если вы хотите получить еще больше фантазии, вы можете вложить их:

ssh alice@server1 "ssh bob@server2 \"cd myproject && git pull origin master && make all\""

Вы можете использовать сценарий вроде ssh-цепочка чтобы облегчить тебе жизнь.

Не знаю, поддерживает ли он передачу sftp.