Мне нужно выполнять автоматический scp (каждые два часа) с сервера Windows 2012 на сервер Linux. Я знаю, как это сделать с сервера Linux на другой сервер Linux (ssh и cron).
Какой инструмент мне нужен в Windows? Я знаю, что ssh не является встроенным в Windows, поэтому я хотел бы использовать аналогичный инструмент. Это похоже на причину появления сообщения «Соединение отказано»? но это ...
Я знаю, что есть масса сообщений о невозможности подключения к экземпляру AWS ec2, но это не совсем то же самое. Это похоже на Причина появления сообщения «Соединение отказано»? , но это не помогло решить мою проблему.
У меня довольно большой опыт работы с экземплярами ec2, но я впервые попробуйте это с REHL.
Вот мои настройки:
ssh -v -NTR 1101: localhost: 80 someUser @ myAwsIp -o ExitOnForwardFailure = yes
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 возвращается с сообщением «в соединении отказано».
Некоторые основные факты:
Источник протокола портов
80 tcp 0.0.0.0/0 22 tcp 0.0.0.0/0
порт semanage -l | grep 80
Я вижу строку "http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000"
чего должно быть достаточно, чтобы пропустить curl-запросы, верно? Моя отладка показала, что:
curl localhost: 1101
Я получаю свою веб-страницу nc -kl 1101
на S (вместо переадресации порта ssh) и когда я запускаю curl myAwsIp: 80
с моей машины B, я получаю запрос на входящее соединение на netcat. Но все же, когда я запускаю curl myAwsIp: 80
с моей машины B, curl возвращается с сообщением «соединение отклонено» (конечно, без запуска NC)
Что мне не хватает ??? Спасибо за вашу помощь! Это расстраивает! Обратите внимание, что точно такая же установка работала на другом экземпляре AWS EC2, но с установленным Amazon-linux ... есть ли такая большая разница между ними?
Существует несколько причин, по которым не рекомендуется использовать переадресацию портов 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'