Нет, scp не поддерживает http:
Сначала скопируйте файл на свой компьютер, используя curl
или wget
(или сохраните его в браузере), а затем используйте scp для копирования из локальной файловой системы.
Если у вас есть доступ к оболочке на сервере B, просто перейдите по ssh к серверу B и запустите там wget
чтобы получить файл напрямую. Это лучше в том, что он использует только пропускную способность на serverB и веб-сервере (в случае, если это важно для вас) - см. Ниже альтернативное решение, которое использует гораздо большую пропускную способность.
Или, если по какой-то причине вы не можете загрузить файл напрямую на сервер B, сделайте что-то вроде:
serverA$ wget --output-document=- http://server:host/directory/my_file.war | \
ssh user@serverB "cat > /path/to/my_file.war"
Это говорит wget
выбрать URL-адрес для stdout, а затем ssh
отправит эти данные на serverB и перенаправит их в файл. К сожалению, scp
не может прочитать из stdin, поэтому вам потребуется доступ к оболочке на serverB, чтобы это работало. Обратите внимание, что если вы сделаете это, вы будете использовать 2x пропускную способность на сервере A (чтобы извлечь файл с веб-сервера, а затем отправить его на сервер B), и вы будете использовать 1x пропускную способность на веб-сервере и сервере B.