Мне нужно получить файл по ссылке (443), что возможно только с сервера B
.
У меня 3 сервера, ( AB C ).
Можно получить доступ к серверу B и загрузить этот файл с помощью wget
с сервера C .
wget https://NAME:PASS@DOMAIN.net/customerInfo/804-577823-10 --no-check-certificate
...
2021-06-18 16:18:01 (24,7 MB/s) - ‘804-577823-10’ saved [163/163]
От A до B разрешено использовать только порт 22
(ssh), но не порт 443
.
Мне нужно создать туннель, который будет проходить от A до B через 22
и загрузить файл с C через wget
порт 443
, точно так же, как если бы я был на сервере B .
Короче говоря, мне нужен ssh-туннель от A до B , а затем мне нужно использовать порт 443
, чтобы применить / загрузить файл на C через wget
из A , так же, как на B .
Я пытался, но безуспешно.
ssh -L 4433:C:443 -Nf B
Я пробовал даже с прокси, но безуспешно.
wget -e use_proxy=yes -e http_proxy=C https://NAME:PASS@DOMAIN.net/customerInfo/804-577823-10 --no-check-certificate
Возможно ли?
Спасибо.
ОБНОВЛЕНИЕ
SERVER_A:443 -> ssh tunnel by port 22 through SERVER_B -> SERVER_C:443
Итак, если я использую на SERVER_A ту же ссылку, что и на SERVER_B , я хочу получить файл с помощью wget
из SERVER_C .
Самый простой способ - разрешить порт 443
на SERVER_C для SERVER_A , но в данном случае это невозможно.
Разрешен только порт 22
между SERVER_A и SERVER_B .
Теперь все ясно?
Спасибо.
Это зависит от того, кому принадлежат серверы с точки зрения разрешений, чтобы определить, что вы можете делать. Кроме того, я не совсем понимаю, если это одноразовая загрузка или вам нужно постоянное решение.
Прочитав ваш вопрос, я перейду на сервер B с защищенной оболочкой.
$ ssh user@serverB
Затем загрузите файл оттуда. (Важен пункт в конце)
$ scp -P 443 user@serverC:/path/to/file.txt .
После этого вы можете отправить его на сервер A
$ scp file.txt user@serverA:~/
Существуют также более сложные решения, но это зависит от ваших потребностей и свободы действий.
Обновление :
Вы можете отправить команду на сервер по ssh.
ssh user@serverB "wget your file at C"
Вы можете выполнить двойную команду, например:
ssh user@serverB "wget your file @C:443 && scp file.txt you@serverA:~/"
Но тогда вам нужно, чтобы на serverB были установлены публичные сертификаты на serverA, чтобы пропускать слова без паролей. Альтернативой является сценарий с двумя командами, как описано выше.