scp и sftp — безопасная передача файлов

Пакет OpenSSH включает еще две программы, способные использовать шифрованный туннель SSH для копирования файлов по сети. Первая, scp (secure copy — безопасное копирование) используется для копирования файлов, как уже знакомая вам программа cp. Основное отличие заключается в необходимости предварять пути к исходному или конечному файлу именем удаленного узла и символом двоеточия за ним. Например, скопировать документ с именем document.txt из домашнего каталога в удаленной системе remote-sys в текущий рабочий каталог в локальной системе можно так:

[me@linuxbox ~]$ scp remote-sys:document.txt .

me@remote-sys's password:

document.txt 100% 5581 5.5KB/s 00:00

[me@linuxbox ~]$

По аналогии с командой ssh перед именем удаленного узла можно указать имя пользователя, если имя учетной записи в удаленной системе не совпадает с именем учетной записи в локальной системе:

[me@linuxbox ~]$ scp bob@remote-sys:document.txt .

Вторая программа копирования файлов через SSH-соединение: sftp. Как следует из ее имени — это безопасная замена для программы ftp. sftp действует практически так же, как оригинальная программа ftp, которую мы использовали выше, только передает данные не в открытом текстовом виде, а через шифрованный туннель SSH. sftp имеет важное преимущество перед обычной программой ftp — она не требует, чтобы на удаленном узле работал сервер FTP. Ей необходим только сервер SSH. Это означает, что любой компьютер, к которому можно подключиться с помощью клиента SSH, можно также использовать в качестве FTP-подобного сервера. Ниже приводится пример сеанса работы с программой sftp:

[me@linuxbox ~]$ sftp remote-sys

Connecting to remote-sys...

me@remote-sys's password:

sftp> ls

ubuntu-8.04-desktop-i386.iso

sftp> lcd Desktop

sftp> get ubuntu-8.04-desktop-i386.iso

Fetching /home/me/ubuntu-8.04-desktop-i386.iso to ubuntu-8.04-desktop-i386.iso

/home/me/ubuntu-8.04-desktop-i386.iso 100% 699MB 7.4MB/s 01:35

sftp> bye

ПРИМЕЧАНИЕ

Протокол SFTP поддерживается многими диспетчерами файлов с графическим интерфейсом, входящими в состав дистрибутивов Linux. В Nautilus (GNOME) или Konqueror (KDE) можно ввести в адресную строку идентификатор URI, начинающийся с sftp://, и работать с файлами, хранящимися в удаленной системе с действующим сервером SSH.

существуют ли клиенты ssh для windows?

Допустим, что вы работаете за компьютером с операционной системой Windows и вам нужно зайти на свой сервер с Linux, чтобы выполнить некую работу. Как быть? Нужно просто установить в Windows программу клиента SSH! Существует довольно много таких программ. Наиболее популярной, пожалуй, является программа PuTTY Симона Тэтхэма (Simon Tatham) и его команды. Программа PuTTY отображает окно терминала и позволяет пользователю Windows открыть сеанс SSH (или telnet) с удаленным узлом. Программа также предоставляет аналоги программ scp и sftp.

Программа PuTTY доступна по адресу http://www.chiark.greenend.org.uk/~sgtatham/putty/.

8 Аутентичность узла ‘remote-sys (192.168.1.4)’ не может быть установлена. Идентификационный ключ RSA: 41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb. Вы уверены, что желаете установить соединение (да/нет)? — Примеч. пер.

9 Внимание: Узел ‘remote-sys,192.168.1.4’ (RSA) добавлен в хранимый список известных узлов. — Примеч. пер.

10 ВНИМАНИЕ: ИЗМЕНИЛСЯ ИДЕНТИФИКАТОР УДАЛЕННОГО УЗЛА!

ЕСТЬ ВЕРОЯТНОСТЬ, ЧТО КТО-ТО ЗАМЫСЛИЛ ЧТО-ТО НЕДОБРОЕ!

Кто-то может подслушивать вас прямо сейчас (атака "злоумышленник в середине")!

Возможно также, что просто изменился идентификационный ключ RSA узла.

Удаленный узел прислал идентификационный ключ RSA:

41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.

Пожалуйста, свяжитесь со своим системным администратором.

Добавьте правильный ключ узла в /home/me/.ssh/known_hosts, чтобы избавиться от этого сообщения.

Подозреваемый ключ хранится в файле /home/me/.ssh/known_hosts:1

Идентификационный ключ RSA узла remote-sys изменился, а вы запросили строгую проверку.

Проверка ключа удаленного узла завершилась неудачей.

— Примеч. пер.

11 Подозреваемый ключ хранится в файле /home/me/.ssh/known_hosts:1 — Примеч. пер.