Поиск по этому блогу

среда, 24 июня 2015 г.

scp копирование без пароля (по ключу)

имеется
#uname -a
Linux atos-pc 3.16.0-23-generic #31-Ubuntu SMP Tue Oct 21 17:56:17 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
#
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.10
Release:        14.10
Codename:       utopic
#
# cat /etc/debian_version
jessie/sid

хочу настроить копирование на удаленную машину без запроса пароля (использование пары ключей)

создал пару ключей ssh-keygen -t rsa, скопировал закрытый ключ на локальной машине в папку пользоваль/.ssh/, на удаленной машине открытый ключ скопировал пользоваль/.ssh/authorized_keys

В /etc/ssh/sshd_conf на локальной машине: расскоментировал PubkeyAuthentication yes,
На удаленной машине: AuthorizedKeysFile     %h/.ssh/authorized_keys, PubkeyAuthentication yes
%h - домашний каталог пользователя

копирую таким образом
scp -i /root/.ssh/id_dsa -v   /home/user3/test_file root@10.1.1.11:/home/user
-i - указывает где лежит закрытый ключ на локальной машине
-v - делает многословный вывод. удобно при тестировании, особено совместно с опцией -d

В таком виде его можно и в cron запихать
*/5 * * * * /usr/bin/scp -2 -B -r -i /root/.ssh/id_dsa -v /etc/freeradius/mac_db root@10.1.1.11:/home/user
производить копирование каждые через каждые 5 минут (12:00, 12:05, 12:10 и т.д.)
5 * * * * /usr/bin/scp -2 -B -r -i /root/.ssh/id_dsa -v /etc/freeradius/mac_db root@10.1.1.11:/home/user
запуск каждые 5 минут каждого часа (12:05, 13:05, 14:05 и т.д.)

Простой скрипт без всяких проверок, на наличие файлов, их изменение и т.д. (не умею пока этого делать). Просто копирование в различные места /home/user/scp_script
#!/bin/bash
for i in user user1 user2 user3 user4
do
/usr/bin/scp -r -v -B  -i /root/.ssh/id_dsa  /etc/freeradius/mac_db root@10.1.1.11:/home/$i/
done


Если возникнут такие ошибки

debug1: Found key in /root/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).
lost connection

Необходимо провеирть права на папку /.ssh и файл authorized_keys на удаленой машине. Должны быть владельцами "пользователи" в директорию которых они скопированы (для user1 - пользователь1, для root - и т.д.)

Если настройка нового ssh сервера производилась клонированием настроек со старого, то необходимо перегенерировать все ключи в папке /etc/ssh:
  • Удаляем старые ssh ключи: rm /etc/ssh/ssh_host_*
  • Переконфигурируем OpenSSh Server: dpkg-reconfigure openssh-server
  • Обновляем всех ssh клиентов: ~/.ssh/known_hosts files

  • При необходимости перезапустить ssh используем invoke-rc.d ssh restart
    При перегенерировании новых ключей текущая ssh сессия не должна быть прервана

    Полезно для ознакомления Теория и практика использования SSH, crontab, wiki.debian.org
    Наглядная табличка по cron, чтобы не забыть


    1 комментарий:

    1. Просто Блог: Scp Копирование Без Пароля (По Ключу) >>>>> Download Now

      >>>>> Download Full

      Просто Блог: Scp Копирование Без Пароля (По Ключу) >>>>> Download LINK

      >>>>> Download Now

      Просто Блог: Scp Копирование Без Пароля (По Ключу) >>>>> Download Full

      >>>>> Download LINK

      ОтветитьУдалить