Scp linux with key

scp — Secure File Copy

scp is a program for copying files between computers. It uses the SSH protocol . It is included by default in most Linux and Unix distributions. It is also included in the Tectia SSH and OpenSSH packages.

Contents

Basic usage

The basic usage of scp is as follows:

This copies the file to the remote host. The destination path is optional, but can be a directory on the server, or even a file name if copying a single file. It is possible to specify multiple files; the last one is the destination.

To copy a file from the remote host, use:

This fetches the file from the host, and puts it in the directory indicated by path . Often, path is just . , meaning the current working directory.

Copying directory trees with scp

To cpoy entire directory trees instead of single files, add the -r option. For example:

This would fetch path/directory from the host, copying it to the current working directory (creating directory in current working directory).

Configuring public key authentication

Normally, scp asks for a password. To avoid this, or to automate file copying in scripts, public key authentication is usually used.

The basic idea is to create a key pair on the client and copy the public key to the server into an authorized keys file . See how to set up public key authentication .

Don’t forget to establish proper SSH key management pratices. See how to manage SSH keys .

Together with our customers, our mission is to secure their digital business on on-premises, cloud, and hybrid ecosystems cost-efficiently, at scale, and without disruptions to their operations or business continuity.

Источник

Как использовать команду SCP в UNIX без пароля

Данный пример приведен на разных UNIX-системах — копирование файла с FreeBSD на CentOS. Использовать его можно в различных средах.

Копирование данных утилитой scp выполняется по протоколу SSH. Таким образом, для беспарольного копирования необходимо разрешить подключение по SSH без пароля. Это делается с помощью сертификата безопасности.

Генерация нового ключа и настройка беспарольного копирования

Для безопасной передачи данных между системами UNIX нужно сгенерировать закрытый и открытый ключи на одном компьютере и передать открытый на второй. Это делается по нижеописанному алгоритму.

На первом компьютере, с которого планируется копировать данные (FreeBSD) генерируем ключи:

ssh-keygen -t rsa

После нажатия Enter система попросит ввести параметры размещения ключа и пароль. Ничего не меняем, нажимая ввод и соглашаясь со значениями по умолчанию.

Читайте также:  Какая windows лучше для pentium 4

* в моем примере, генерация ключа проходила под учетной записью root и публичный ключ был создан по пути /root/.ssh/id_rsa.pub

Теперь скопируем публичный ключ на второй компьютер (CentOS):

scp /root/.ssh/id_rsa.pub dmosk@server2:/home/dmosk/.ssh/authorized_keys

* как видно, мы копируем сгенерированный ключ на компьютер server2, подключившись под учетной записью dmosk и размещаем его в домашнюю директорию этого пользователя под новым именем authorized_keys. Каталог /home/dmosk/.ssh должен быть создан на втором компьютере заранее командой mkdir.

После ввода команды система запросит пароль для учетной записи dmosk на компьютере server2 и скопирует ключ.

На втором сервере (CentOS или к которому будем подключаться и копировать на него данные) проверяем настройки ssh:

Мы должны найти строку:

Если данной строки нет или опция AuthorizedKeysFile имеет другое значение, нужно привести конфигурацию к данному виду. После перезапустить службу ssh:

systemctl restart sshd

Готово. Последующие команды SCP на копирование данных с первого компьютера на второй будут выполняться без запроса пароля, например:

scp /tmp/backup.tar.gz dmosk@server2:/backup/

Перенос закрытого ключа на другой компьютер

В случае, если мы хотим использовать сгенерированный ключ на другом компьютере, переносим файлы id_rsa и id_rsa.pub. Например, у нас есть третий компьютер с Ubuntu (server3) и мы хотим теперь с него копировать файлы на CentOS без пароля. Заходим на компьютер с FreeBSD и копируем ключи:

* мы скопировали файлы id_rsa и id_rsa.pub на другой компьютер. Необходимо обратить внимание, что сертификаты должны находится к каталоге .ssh домашней паки того пользователя, от которого мы хотим подключаться.

Теперь с server3 можно копировать данные без пароля на server2:

scp /tmp/backup.tar.gz dmosk@server2:/backup/

Возможные ошибки

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

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

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
6f:e6:56:85:b6:be:52:3d:8c:5e:3a:8e:68:e2:0e:16.
Please contact your system administrator.
Add correct host key in /home/dmosk/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/dmosk/.ssh/known_hosts:6
RSA host key for 192.168.0.18 has changed and you have requested strict checking.

Причина: произошла смена ключа SSH и так как, на компьютере в файле

/.ssh/known_hosts находится старый ключ, система не позволяет использовать сертификат в целях безопасности.

Решение: открываем файл с базой ключей:

Находим строчку с нашим удаленным компьютером, для которого получаем ошибку и удаляем ее.

Источник

ssh авторизация по ключам, безопасное копирование

Public key — Публичный ключ

/.ssh/authorized_keys на удаленном SSH сервере. В данном случае для подключения используются ключи сгенерированные на стороне клиента. В cygwin создать директорию /home и .csh в ней, можно с помощью # mkdir -p /home/USER/.ssh

    Используя ssh-keygen, генерируем пару ключей.

/.ssh/id_dsa.pub-публичный ключ.
Копируем только публичный ключ на сервер и добавляем его в файл

Используя Windows клиент с ssh.com

/.ssh.

  • Ключи находятся в C:\Documents and Settings\%USERNAME%\Application Data\SSH\UserKeys.
  • Используя ssh-keygen на сервере, конвертируем ключи:
  • Читайте также:  Советник по переходу windows

    Использовать можно как DSA, так и RSA алгоритм. Имейте в виду, сгенерированные нами ключи не защищены паролем, а это определенный минус для безопасности.

    Использование putty для Windows

    /.ssh:

  • Используя ssh-keygen на сервере, конвертировать ключи в формат OpenSSH:
  • В PuTTy: Connection — SSH — Auth, прописать путь к приватному ключу.
  • Fingerprinf — Проверка отпечатка

    /.ssh/known_hosts и при следующих подключениях будет сразу запрошен пароль для подключения, если ответ будет no, соединение будет разорвано. Получить отпечаток можно командой ssh-keygen -l на сервере:

    Источник

    Копирование файлов scp

    Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.

    В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.

    Что такое SCP?

    Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.

    Копирование файлов scp

    Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:

    $ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл

    Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:

    • -1 — использовать протокол SSH1;
    • -2 — использовать протокол SSH2;
    • -B — пакетный режим для передачи нескольких файлов;
    • -C — включить сжатие;
    • — l — установить ограничение скорости в кбит/сек;
    • -o — задать нужную опцию SSH;
    • -p — сохранять время модификации;
    • -r — рекурсивное копирование директорий;
    • -v — более подробный режим.

    scp /home/sergiy/file root@losst.ru:/root/

    В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.

    С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:

    scp -r /home/sergiy/photos root@losst.ru:/root/

    Читайте также:  Windows start menu button icon

    Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:

    scp -r /home/sergiy/photos/* root@losst.ru:/root/

    Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:

    scp root@losst.ru:/root/file /home/sergiy/

    Таким же самым образом вы можете копирование файлов scp или папок с сервера:

    scp -r root@losst.ru:/root/photos /home/sergiy/

    Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.

    Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:

    scp root@losst.ru:/home/root/index.html root@losst.ru:/home/root/www/

    Скопируем папку с того же удаленного сервера:

    scp root@losst.ru:/root/photos root@losst.ru:/home/root/www/

    Выводы

    В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.

    Источник

    SCP — копируем файл без пароля

    Стандартным средством администрирования Linux является SSH.

    SSH (Secure SHell) — сетевой протокол, позволяющий управлять операционной системой удалённо. Особенность протокола в том, что он шифрует все передаваемые внутри него данные. Алгоритмы шифрования можно выбирать.

    Используя защищённый шифруемый канал связи можно посредством SSH передавать файлы с помощью утилиты SCP.

    SCP (Secure CoPy) — утилита для копирования файлов между серверами по безопасному протоколу SSH.

    Утилита в целях безопасности не имеет встроенной возможности указать в параметрах пароль пользователя, пароль приходится вводить вручную. Это мешает использованию SCP в скриптах для автоматизации передачи файлов между серверами. Админы в печали.

    Возможность использования SCP в скриптах есть, для этого нужно отключить использование пароля в SSH соединениях.

    Настраиваем SSH и SCP для работы без пароля

    Вместо пароля будем использовать пару ключей шифрования, чтобы сервер-источник файла и сервер-получатель файла знали пользователя и не спрашивали пароль.

    На сервере-источнике для генерации публичной и приватной пары ключей RSA под нужным нам пользователем выполняем команду:

    • На вопрос «Enter passphrase (empty for no passphrase)» ничего не вводим, нажимаем Enter.
    • На вопрос «Enter same passphrase again» ничего не вводим, нажимаем Enter.

    Не сложно, правда? Нам говорят, что приватный ключ сохранён как /root/.ssh/id_rsa. Публичный ключ — /root/.ssh/id_rsa.pub. Если ключ требуется для другого пользователя, то папку «.ssh» можно скопировать нужному пользователю и сменить права. Публичный ключ нужно скопировать на удалённый сервер в файл

    /.ssh/authorized_keys. Скопировать можно здесь же вручную по SCP.

    Проверьте, есть ли на сервере-получателе файл

    /.ssh/authorized_keys, если есть, то следует выполнить команды:

    Если файла нет, то просто копируем публичный ключ:

    При копировании попросят ввести пароль. Здесь root — имя пользователя на сервере-получателе, а freepbx — имя сервера-получателя.

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

    Источник

    Оцените статью