Выполнить автоматический scp на сервере Windows

Мне нужно выполнять автоматический scp (каждые два часа) с сервера Windows 2012 на сервер Linux. Я знаю, как это сделать с сервера Linux на другой сервер Linux (ssh и cron).

Какой инструмент мне нужен в Windows? Я знаю, что ssh не является встроенным в Windows, поэтому я хотел бы использовать аналогичный инструмент. Это похоже на причину появления сообщения «Соединение отказано»? но это ...

Я знаю, что есть масса сообщений о невозможности подключения к экземпляру AWS ec2, но это не совсем то же самое. Это похоже на Причина появления сообщения «Соединение отказано»? , но это не помогло решить мою проблему.

У меня довольно большой опыт работы с экземплярами ec2, но я впервые попробуйте это с REHL.

Вот мои настройки:

  • У меня есть машина A с сервером apache, прослушивающим порт 80
  • Машина A также подключена к серверу S AWS EC2 с обратным туннелем:

ssh -v -NTR 1101: localhost: 80 someUser @ myAwsIp -o ExitOnForwardFailure = yes

  • Сервер S имеет следующую переадресацию портов:

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp - -dport 80 -j REDIRECT --to-ports 1101

Проще говоря, весь трафик, поступающий в S через порт 80, должен идти к A через порт 80. Но это не работает. То есть, когда я запускаю curl myAwsIp: 80 с машины B, curl возвращается с сообщением «в соединении отказано».

Некоторые основные факты:

  • Я уверен, что IP-адрес правильный, поскольку я ssh на сервер для выполнения этих команд
  • У меня нет правил iptables, чтобы что-либо отбрасывать. Обе таблицы filter и nat полностью настроены на ACCEPT (за исключением правила, упомянутого выше)
  • Я открыл порт 80 на своей консоли управления EC2. Это выглядит так:

Источник протокола портов

80 tcp 0.0.0.0/0 22 tcp 0.0.0.0/0

  • Я не очень знаком с semanage, но поискав в Интернете, я увидел, что это может быть проблемой. Когда я запускаю порт semanage -l | grep 80 Я вижу строку "http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000" чего должно быть достаточно, чтобы пропустить curl-запросы, верно?

Моя отладка показала, что:

  • httpd-сервер работает и прослушивает правильный порт, потому что когда я вхожу в систему на S, я запускаю curl localhost: 1101 Я получаю свою веб-страницу
  • , пересылка должна работать, потому что когда я запускаю nc -kl 1101 на S (вместо переадресации порта ssh) и когда я запускаю curl myAwsIp: 80 с моей машины B, я получаю запрос на входящее соединение на netcat.

Но все же, когда я запускаю curl myAwsIp: 80 с моей машины B, curl возвращается с сообщением «соединение отклонено» (конечно, без запуска NC)

Что мне не хватает ??? Спасибо за вашу помощь! Это расстраивает! Обратите внимание, что точно такая же установка работала на другом экземпляре AWS EC2, но с установленным Amazon-linux ... есть ли такая большая разница между ними?

0
задан 13 April 2017 в 15:14
1 ответ

Существует несколько причин, по которым не рекомендуется использовать переадресацию портов ssh для получения запросов от вашего пользователей на ваш производственный сервер.

Поскольку у вас не будет сквозного TCP-соединения, ваш сервер никогда не увидит IP-адреса клиентов. Это означает, что в ваших журналах никогда не будут отображаться правильные IP-адреса клиентов, что, вероятно, усложнит вам проблемы отладки в будущем.

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

В вашей конкретной настройке вы также неправильно настроили переадресацию портов ssh таким образом, чтобы она не работала. Переадресация портов прослушивает localhost ( :: 1 и / или 127.0.0.1 ). Но соединения, которые необходимо переадресовать, поступают на внешний IP-адрес, и поэтому в них всегда будет отказано в соединении.

Чтобы заставить работать переадресацию порта ssh, вам нужно добавить эту строку в свой / etc / ssh / sshd_config

GatewayPorts clientspecified

Кроме того, для переадресации портов необходимо указать адрес прослушивания, который, например, может выглядеть так:

-R '[2001:db8::1]:1101:localhost:80' -R '192.0.2.3:1101:localhost:80'
0
ответ дан 5 December 2019 в 10:42

Теги

Похожие вопросы