@Davidaa_WoW

Как скачать файл с сайта командой scp и sftp?

По заданию сначала шло взаимодействие с помощью ssh и sftp по сути с самим собой, подключением к localhost, с чем проблем не возникало, просто команды scp и get соответственно.
Однако следующее задание, скачать файл с какого-либо удалённого ресурса. В качестве примера даётся: ftp://ftp.hp.com:21/pub/softpaq/sp40001/sp40001.cva
Решить "в лоб" не получилось - scp ftp://ftp.hp.com:21/pub/softpaq/sp40001/sp40001.cva localhost выдаёт ошибку, подключиться путём ssh ftp.hp.com также не удалось. Так что же делать в данной ситуации?
  • Вопрос задан
  • 594 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Drno
scp для подключения по ssh
для выкачивания по ftp Логично использовать wget
wget ftp://ftp.hp.com/pub/softpaq/sp40001/sp40001.cva
Ответ написан
@rPman
curl это высокоуровневая утилита, поддерживает работу чуть ли не со всеми протоколами
DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.

поэтому твоя задача могла бы решиться только ей просто указывай путь соответствующем формате scp://user:passwd@server... sftp://... и т.п. само собой беспарольная аутентификация по ключу так же работает

сообщения об ошибках должны подробно описать причину, по которой у тебя что то не получается, а ключ -v добавит подробностей

Если что указанные ссылки на ftp hp не работают из россии, так что используй например прокси, в curl она включается ключом --proxy socks5://ip:port если используется socks5 версия (локальная socks5 прокси поднимается ssh подключением к удаленному серверу просто подключившись туда с ключом ssh user@server -D1080 где 1080 порт, а socks сервер будет на localhost).

p.s. scp это штатный механизм работы с файлами через ssh соединение, т.е. он будет работать кажется при любых экзотических условиях (бывает даже специально пользователя заводят только с доступом по scp)
sftp это подключение по ftp, предварительно подключившись по ssh к серверу

ну и на засыпку, можно копировать файлы просто утилитой ssh используя перенаправления потоков
tar -c /source/files | ssh user@server "cd /path/to/;tar -x --"

тут архиватор tar пакуте локальные файлы, и выводит полученный архив в stdout, который передается через ssh подключение удаленному tar который все распаковывает уже на удаленном сервере

данный подход простой, не требует ничего настраивать и устанавливать на серверах (будет работать наверное на 20-летних железках) но не обрабатывает как следует ошибки, т.е. если что то пойдет не так все прервется
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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