Как скачать файл с сервера, используя SSH? [закрыто]

749

Мне нужно скачать файл с сервера на мой рабочий стол. (UBUNTU 10.04) У меня нет веб-доступа к серверу, просто ssh.

Если это помогает, моя ОС - Mac OS X и iTerm 2 в качестве терминала.

Нилл
источник
Попробуйте этот sftp
Nishchit Dhanani
51
почему это не по теме?
jsmedmar
4
потому что это не вопрос программирования
Black
26
Вместо этого @EdwardBlack можно было перенести в unix.stackexchange
gldraphael
3
Это сработало для меняsudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop
kaxi1993

Ответы:

1166

В своем терминале введите:

scp your_username@remotehost.edu:foobar.txt /local/dir

замена имени пользователя, хоста, удаленного имени файла и локального каталога в зависимости от ситуации.

Если вы хотите получить доступ к EC2 (или другой службе, требующей аутентификации с помощью закрытого ключа), используйте -iпараметр:

scp -i key_file.pem your_username@remotehost.edu:/remote/dir/foobar.txt /local/dir

От: http://www.hypexr.org/linux_scp_help.php

Josh1billion
источник
3
Я не знаком с Amazon EC2, но если у вас есть SSH-доступ к вашему серверу, он должен работать.
Josh1billion
3
Я думаю, что /между your_username@remotehost.edu:и foobar.txtв приведенном выше примере отсутствует.
Юджин С.
13
@NiLL scp -i xxx.pem your_username@remotehost.edu: каталог foobar.txt / some / local /
Хелин Ван
3
@Alex добавить опцию -r.
SgtPooki
10
Полезная информация - я не догадывался, что вы запускаете это с локального компьютера, а не с того места, с которого вы хотите загрузить. поэтому, как и спрашивал Хорак, ~ / выгрузит его в ваш каталог пользователей, например / Users / admin / - я залогинился в ssh удаленно и удивился, почему он не работает.
Кай Цин
322

Вы можете сделать это с помощью scpкоманды. scpиспользует протокол SSH для копирования файлов по всей системе, расширяя синтаксис cp.

Скопируйте что-нибудь из другой системы в эту систему:

scp username@hostname:/path/to/remote/file /path/to/local/file

Скопируйте что-нибудь из этой системы в другую:

scp /path/to/local/file username@hostname:/path/to/remote/file          

Скопируйте что-нибудь из одной системы в другую:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file   
raj_gt1
источник
5
Мне нравится, как если бы кто-то хотел задать вопрос OPs и не полностью прочитал ваш ответ, они могли бы случайно и без раздумий просто выполнить вашу первую команду и, возможно, перезаписать удаленный файл, который они пытаются загрузить, локальным файлом, к которому они могли прикоснуться ранее. упс.
Мистер Пурпур
Почему есть доступ для? Кто-то может сделать «rm -rf /», не задумываясь, но это не уменьшает полезность команды rm?
raj_gt1
1
Думаете ли вы, что начинаете отвечать на вопрос «Как мне обновить Linux?» с командой "rm -rf /" также будет хорошей идеей?
Мистер Пурпур
2
@MrPurple - Спасибо за предупреждение, я почти сделал это. Я отредактировал вопрос, чтобы сначала показать наиболее релевантную команду
Sphinxxx
96

scp - это, конечно, путь, но для полноты вы также можете сделать:

$ ssh host 'cat /path/on/remote' > /path/on/local

или

$ cat /path/on/local | ssh host 'cat > /path/on/remote'

Обратите внимание, что это UUOC, но < /path/on/local ssh host 'cat > /path'может привести к ненужной путанице.

И для прокси между двумя хостами:

$ ssh host1 'cat /path/on/host1' | ssh host2 'cat > /path/on/host2'
Уильям Перселл
источник
2
winscp.net/rus/download.php
Нишит Дханани
5
Кто-нибудь делал тест скорости на разных методах? Мне было бы интересно узнать, какой из них самый быстрый. Вариант использования: у меня есть огромный файл для скачивания.
starbeamrainbowlabs
Это на самом деле работает с .ssh / config, тогда как scp, похоже, не соответствует конфигурации ssh
13

Если сервер SSH поддерживает подсистему SFTP (это часть SSH и не связана с FTP), используйте sftp. Если это не так, попробуйте scp.

CyberDuck поддерживает их всех.

J-16 SDiZ
источник
2
Загрузите с их веб-сайта cyberduck.ch/Cyberduck-4.2.1.zip
J-16 SDiZ
Похоже, что с тех пор они изменили программное обеспечение на бесплатное, но вы можете по желанию пожертвовать любую сумму, и это избавит от «приглашения на пожертвование» изнутри программы.
Майк
12
Это не отвечает на вопрос.
Эдвин
1
Это достаточно просто загрузить с помощью SFTP от Cyberduck
Мигель Стивенс
FileZilla прекрасно работает для меня, и является бесплатным и открытым исходным кодом (и сделан теми же парнями, что и Firefox). как и Cygwin.
hanshenrik