Не уверен, как это точно сформулировать. У меня есть школьный веб-сервер, к которому я должен получить доступ к ssh на одном сервере, а затем оттуда на ssh . Можно ли как-то настроить что-либо, чтобы обойти первый сервер, чтобы я мог получить доступ ко 2-му серверу напрямую?


Возможно, я должен упомянуть, что я работаю со своей домашней машины Windows. Я упомянул ssh , но, как видно из заголовка, я хочу отправлять свои файлы по FTP используя что-то вроде FileZilla, а не какой-либо интерфейс командной строки (PuTTy).

5 ответов5

3

Возможно, вы захотите проверить ProxyCommand OpenSSH, которая позволяет вам указать произвольную команду для создания туннеля. В этом случае вы бы использовали ssh-соединение с первым сервером, запустив что-то вроде netcat для подключения ко второму серверу. Это особенно удобно, если вы используете аутентификацию с открытым ключом для подключения к первому серверу, в противном случае вам нужно ввести два пароля.

Соответствующий файл .ssh/config -snippet выглядит так:

Host hidden-server
HostKeyAlias hidden-server
ProxyCommand ssh first-server nc -w1 hidden-server 22
2

После того, как @mpen связал меня с WinSCP, я просто последовал указаниям и заставил работать с Filezilla. Процесс такой же, как описано здесь.

Эти указания только для Windows.

  1. Убедитесь, что вы загрузили Putty где-нибудь. Достаточно просто иметь putty.exe (интерфейс командной строки). Например, на вашем рабочем столе
  2. У вас установлен SFTP-клиент (например, Filezilla или WinSCP)
  3. Запустите этот код из командной строки (очевидно, первый путь - это каталог, в котором нужно выполнить команду):

C:\Users\<username>\Desktop> .\putty.exe <tunnel.server> -L 3111:<server-destination>:22

Пример:

C:\Users\Bram\Desktop> .\putty.exe my.domain.com -L 3111:sub.domain.com:22
  1. Откройте клиент SFTP и используйте обычные учетные данные, но вместо адреса сервера вы используете localhost с портом 3111.
  2. Вы сделали Не забывайте держать туннель открытым, пока не закончите!
1

~/.Ssh /конфигурации:

Host internalmachine.mynet.com
    ProxyCommand ssh gateway.mynet.com exec nc %h %p
0

Смотря как. Если второй сервер действительно имеет маршрутизируемый адрес (т . Е. Его IP-адрес не начинается с 10 или 192.168 или 172.16 . -172.31 .), То это должно быть возможно. За исключением того, что его SSH-сервер может разрешать соединения только с первого сервера, к которому вы подключаетесь. Для этого есть веские причины безопасности, а именно то, что общедоступный сервер SSH, который делает что-то важное (например, обслуживание веб-страниц), обычно любит быть доступным только с нескольких IP-адресов, чтобы не дать людям взломать пароли с помощью атак по словарю.

Мы не люди, чтобы задать этот вопрос. Вы должны спросить администратора рассматриваемой системы, почему это так, и, возможно, сможете ли вы получить (исправлено!) IP-адрес, настроенный как доверенный адрес на конечном SSH-сервере.

0

Только что обнаружил, что вы можете использовать PuTTY для настройки туннеля, а затем подключиться к нему с любой программой FTP, которую вы хотите. Работает отлично :)

(Для тех, кто также нуждается в этом решении: см. Как передавать файлы при наличии двух учетных записей SSH?)

ExpanDrive также прекрасно работает и невероятно прост в использовании.

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