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


2

Я подключаюсь к 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»
  • Укажите имя вашего компьютера «server2» или IP-адрес в поле «Имя удаленного хоста»
  • Укажите имя вашего компьютера «server1» или IP-адрес в поле «SSH bouncing (connect by gateway ssh server)»

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


Это похоже на хорошую программу. У меня не всегда X-сервер работает на исходном сервере.
Тим

Хорошо, но X-сервер не требуется: вы можете отключить его в настройках MobaXterm, если хотите.
Дидье

Хорошо, из названия я просто предположил, что это не программа командной строки. Я проверю это.
Тим

1

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

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

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

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

scp -P 8888 localhost:file

0

home$ server1 "ssh server2"

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


0

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

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

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

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

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.