Как использовать ssh и scp напрямую через сервер?

Как использовать ssh и scp напрямую через сервер?

Я подключаюсь к server2 следующим образом:

home$ ssh server1
server1$ ssh server2
server2$

Мне также иногда приходится использовать scp таким образом, что занимает дополнительное время:

home$ ssh server1
server1$ scp server2:file .
server1$ exit
home$ scp server1:file .

Есть ли способ сделать это одной командой из дома? Я использую аутентификацию с открытым ключом, но было бы неплохо, если бы это работало и с паролями.

решение1

Я предлагаю использовать MobaXterm: вам просто нужно

  • скачать его можно здесь:http://mobaxterm.mobatek.net/download-home-edition.html
  • Нажмите «Новый сеанс» и выберите «ssh».
  • Укажите имя или IP-адрес вашего компьютера «server2» в поле «Имя удаленного хоста».
  • Укажите имя компьютера «server1» или IP-адрес в поле «SSH-отказ (подключение через шлюзовой сервер SSH)».

Это запустит новую команду SSH, напрямую на ваш компьютер "server2". В левой части окна вы также получите доступ к графическому инструменту передачи файлов SFTP, который также будет подключен напрямую к "server2".

решение2

Вы можете использовать SSH-туннелирование следующим образом:

ssh -f server1 -L 8888:server2:22 -N

Это открывает сокет на вашей локальной машине на порту 8888 (предполагая, что никакой другой процесс не использует этот порт), который туннелирует соединение к server2 (предполагая, что SSH работает на порту 22) через server1. Флаги -Nи -fсообщают SSH о необходимости перейти в фоновый режим (вам придется завершить процесс, если вы хотите остановить туннель).

Теперь вы можете scp-файлы с server2, просто выполнив

scp -P 8888 localhost:file

решение3

home$ server1 "ssh server2"

Но когда речь идет о большем количестве серверов, экранирование командной строки может оказаться затруднительным.

решение4

Используйте SOCKS5 с динамическим туннелем

Создайте динамический туннель ssh к первой машине. Затем используйте первое соединение как прокси SOCKS5, чтобы добраться до второго хоста в удаленной сети.

Это легко настроить через putty. Вы можете повторно использовать прокси столько раз, сколько захотите. Некоторые программы поддерживают SOCKS5 напрямую. Например, putty и ssh.

Под Linux proxychains можно использовать для проксирования программ, которые изначально не поддерживают SOCKS5. Под Windows мне нравится Proxycap. Он хорошо работает с RDP.

Чтобы настроить это с помощью Putty:

На первой странице настроек хоста, в разделе туннели:

  • создать динамический туннель
  • Установите порт 9050.
  • Оставьте поле назначения пустым, так как оно динамическое.
  • Сохраните настройки. (Выполняется на странице сеанса.)

Затем в конфигурации для второго хоста, в разделе proxy:

  • Выберите SOCK55.
  • Измените имя хоста прокси на 127.0.0.1.
  • Установите порт на 9050
  • Затем настройте остальную часть сеанса как обычно.
  • Сохраните настройки

Чтобы подключиться ко второму хосту. Сначала вам нужно подключиться и войти на первый хост. Затем вы сможете подключиться ко второму хосту через проксированное ssh-соединение,

Это также можно сделать из командной строки с помощью записи ssh_config: http://www.undeadly.org/cgi?action=article&sid=20070925181947

Связанный контент