Как (S) FTP на скрытый сервер?


0

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


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



@ Арджан правда, но ответы получше. как обрабатываются обманщики? Получает ли оригинал ссылки на дубликаты, или мы должны вручную скопировать полезные ответы на оригинал? (да, я знаю, что это лучше для мета ....)
кряканье Quixote

@ ~ шарлатан, правда, между тем были опубликованы ответы, которые не были размещены на другой вопрос. Жаль, если вы спросите меня, но хорошо.
Арьян

Ответы:


3

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

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

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

Подожди, я поставил этот файл на первый сервер?
mpen

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

Моя локальная машина - Windows ... Я использую PuTTy ... Как это будет работать?
mpen

это функция OpenSSH, которая является конкретной реализацией SSH. PuTTY не использует .ssh / config, поэтому вам нужно установить OpenSSH (через Cygwin это один из способов) или использовать другое решение.
Квик-кихот

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. Вы сделали Не забудьте держать туннель открытым, пока не закончите!

WinSCP поддерживает туннельные соединения напрямую, поэтому нет необходимости запускать дополнительную программу.
Даниэль Б

@DanielB Я вижу, я использовал Filezilla, поэтому я не был уверен.
Брэм Ванрой

1

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

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

А что потом? Когда я пытаюсь подключиться к первому серверу через мою любимую программу ftp, он перенаправляется на второй сервер?
mpen

Вместо двух SSH-соединений вы попадете прямо на внутренний хост, поэтому все, что вы обычно делаете, когда доберетесь до этой точки, будет работать. Следует отметить, что это только будет работать для SSH. Не FTP.
Фрес

Если вы хотите сделать это через FTP, самый простой способ - настроить переадресацию порта SSH через ту же ProxyCommand.
Фрес

0

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

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


+1 понимание безопасности. вы ошибаетесь, что мы не люди, которые спрашивают - он спрашивал о настройке чего-либо, чтобы обойти это (читай: «упростить для пользователя»), а не о том, почему это было настроено таким образом. но ваше объяснение связанных вопросов заслуживает внимания.
шарлатан-кихот

Возможно, но в конечном итоге администратор может предоставить наиболее элегантное решение. Все, что мы можем сделать, это предложить уродливым хакерам обойти «проблему».
Эрни Данбар

1
Нет. Интеллектуальная настройка SSH для выполнения двух входов в систему с одним действием пользователя - это не «уродливый взлом» - это понимание ситуации и работа с инструментами. администратор не хочет предоставлять пользователю решения; они хотят админа.
Квик-кихот

Это для школьного проекта ... мы будем использовать его около 4 месяцев, просто чтобы показать свою работу профессионалу ... Я не думаю, что безопасность имеет первостепенное значение. Это просто боль в том, чтобы перенести файлы на первый сервер, а затем попытаться вспомнить команду darn linux, чтобы переместить em на второй ... каждый раз, когда я хочу отредактировать файл stinkin.
mpen

Как системный администратор, любой администратор, который не хочет предоставлять пользователю решения, является чертовски бедным администратором. Они могут также отключить сервер, если они не хотят предоставлять решения пользователям. Весь смысл серверов в предоставлении услуг. Существует гораздо лучшее, гораздо более безопасное решение этой проблемы безопасности, чем то, которое существует. Например, администратор может назначить вам ключ для входа в систему, вместо того чтобы использовать пароли, а затем отключить все пароли для входа.
Эрни Данбар

0

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

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

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


Если вы помните, не могли бы вы рассказать, как это настроить? Другими словами, какие команды использовать в PuTTY и какие настройки использовать в клиенте FTP?
Брэм Ванрой

@BramVanroy Эээ ... нет, я не помню как именно. PuTTy имеет опцию Tunnels and Proxy , может быть, один из них будет полезен? Может также взглянуть на WinSCP, если вам нужен SFTP. В эти дни я, вероятно, просто SSH на один сервер, а затем SSH на следующий. Редко, когда мне нужно отправлять файлы через туннель.
mpen

Большое спасибо! Я посмотрел WinSCP, и у них есть действительно хорошее руководство для этого. Итак, я добавил свой собственный иллюстративный ответ ниже. Спасибо за указания!
Брэм Ванрой
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.