Как скопировать файлы с удаленного ПК, если есть только SSH?

Posted on Март 11th, 2009 by hawk and tagged , , .

**********************************************
Данная статья - это кросспостинг с ]]>http://unixa.ru/]]>.
Оригинал статьи ,доступен для прочтения ]]>здесь...]]>
//H@wk!
**********************************************

Продолжаю серию статей про SSH, вопросы есть, а значит будут и ответы .
У нас есть сервер на котором есть SSH, ни кокого FTP там и в помине нет, а файлы надо как то по сети перекинуть. Собственно для этих целей воспользуемся SCP, подробнее о команде можно узнать из мануала, набрав:

man scp

или прочитав на сайте русскую версию ]]>мана]]>.

(по материалам ]]>википедии]]>)
SCP (от англ. secure copy) — протокол RCP копирования файлов, использующий в качестве транспорта не RSH, а SSH. В UNIX-подобных операционных системах существует одноимённая (scp) утилита удалённого копирования файлов (входит в состав openssh).

Стало быть раз уж SSH установлен, а если нет, смотрим статью ]]>SSH - настройки]]>, то и команда scp в наличии.
Простейший пример использования SCP выглядит так:

scp file user_name@remote_server:~/

При этом локальный файл file будет скопирован на удаленный сервер и помещен в домашний каталог пользователя user_name. Вместо ~/ можно использовать любой другой путь или любую другую папку, в которой пользователь user_name имеет права на запись.

Чтобы скопировать файл с удаленного сервера на локальный компьютер, используется другой синтаксис SCP:

scp user_name@remote_server:~/file

При этом файл file, расположенный в домашнем каталоге пользователя user_name в удаленной системе, будет скопирован в локальную папку (в которой мы сейчас находимся).

Как и для команды cp (обычное копирование), команда scp поддерживает такие полезные ключи как:
-p для сохранения времени изменения файлов и -r для рекурсии.
Еще упомяну ключик -P port – использовать нестандартный порт (по умолчанию 22) – этот параметр следует использовать, если сервер ожидает соединения на нестандартном порту.

Утилита scp имеет одну особенность синтаксиса. Допустим, в домашнем каталоге есть подкаталог с именем video и нужно скопировать его на удаленную систему. Необходимо, чтобы содержимое ~/video заменило содержимое каталога video на удаленном компьютере, если имена файлов или каталогов при копировании будут совпадать.

scp -pr ~/video user_name@remote_server:/dir/video

!!! В описании пути к каталогу на удаленном компьютере не хватает закрывающего слэша "/". С точки зрения SCP команда читается как "копировать содержимое каталога ~/video в каталог /dir/video на удаленном компьютере".
Как и в случае использования команды cp, файлы и каталоги, чьи имена совпадают с именами файлов и каталогов на сервере - перезаписываются, файлы с отличающимися именами на удаленной системе остаются нетронутыми.
Добавим в конец команды закрывающий слэш:

scp -pr ~/video user_name@remote_server:/dir/video/

В этом случае scp поймет команду как "копировать каталог ~/video в каталог /dir/video." Вместо перезаписи содержимого удаленного каталога, каталог video на исходном компьютере будет просто скопирован в удаленный каталог.

Следует учитывать данную особенность при работе и применять закрывающий слешь там, где этого требует ситуация. Подобное положение дел, должно быть знакомо тем, кому приходилось работать с утилитой rsync, но это уже тема отдельной статьи. Очень полезная утилита, будет время, собирусь с мыслями напишу.

Графические интерфейсы для SCP:

Если вам не нравится работать с консолью, то вы можете использовать графический (или псевдографический) клиент SCP.

Midnight Commander – одна из программ, обладающая функциями SCP-клиента (Меню > Правая панель/Левая панель > Shell-соединение).

Nautilus и Konqueror также поддерживают SCP. Для подключения к удаленной системе в адресной строке надо ввести ssh://user_name@remote_server:~/. При этом файлы могут копироваться, как если бы они были расположены локально.

В среде MS Windows есть отличное приложение WinSCP. Его интерфейс очень похож на Total Commander. Cуществует плагин для Total Commander, позволяющий выполнять SCP-подключения.

*****************************
В следующей статье про возможности SSH будут затронуты вопросы X forwarding(а)... (перенаправление Х-сов).

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • You may insert videos with [video:URL]
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <apt>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <pascal>, <php>, <python>, <ruby>, <sql>, <xml>. The supported tag styles are: <foo>, [foo].
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании