[Решено] scp и crontab (с авторизацией по ключу)

Kubuntu, Xubuntu и другие

Модератор: Модераторы разделов

Ответить
sptica
Сообщения: 126
ОС: Ubuntu

[Решено] scp и crontab

Сообщение sptica »

Здравствуйте.

Пытаюсь заставить копировать информацию по ssh с помощью команды scp из crontab. Не работает. Уже обрылся в гугле и не знаю в какую сторону думать. Из консоли работает, из кронтаба - нет. Сама команда:

Код: Выделить всё

/usr/bin/scp 192.168.153.130:/var/backup/Dipost* /home/jf

Если запустить эту команду по кронтабу ничего не копируется, при этом в /var/log/syslog пишется:

Код: Выделить всё

May 31 16:48:01 alex cron[1155]: (jf) RELOAD (crontabs/jf)
May 31 16:48:01 alex CRON[21336]: (jf) CMD (/usr/bin/scp 192.168.153.130:/var/backup/Dipost* /home/jf)
May 31 16:48:02 alex postfix/pickup[19199]: 0FB31C99F0: uid=1000 from=<jf>
May 31 16:48:02 alex postfix/cleanup[21341]: 0FB31C99F0: message-id=<20100531124802.0FB31C99F0@alex>
May 31 16:48:02 alex postfix/qmgr[1451]: 0FB31C99F0: from=<jf@alex>, size=610, nrcpt=1 (queue active)
May 31 16:48:02 alex postfix/local[21344]: 0FB31C99F0: to=<jf@alex>, orig_to=<jf>, relay=local, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
May 31 16:48:02 alex postfix/qmgr[1451]: 0FB31C99F0: removed

И в /var/mail/jf последнее сообщение:

Код: Выделить всё

From jf@alex  Mon May 31 16:48:02 2010
Return-Path: <jf@alex>
X-Original-To: jf
Delivered-To: jf@alex
Received: by alex (Postfix, from userid 1000)
    id 0FB31C99F0; Mon, 31 May 2010 16:48:02 +0400 (MSD)
From: root@alex (Cron Daemon)
To: jf@alex
Subject: Cron <jf@alex> /usr/bin/scp 192.168.153.130:/var/backup/Dipost* /home/jf
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/jf>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jf>
Message-Id: <20100531124802.0FB31C99F0@alex>
Date: Mon, 31 May 2010 16:48:02 +0400 (MSD)

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Получается, что у scp почему-то не получается авторизоваться. Ключ для доступа по ssh сгенерирован без пароля, пути абсолютные. Посмотрел "env | grep -i ssh" - ничего дельного не нашел, значит дело не в переменных окружения.

Люди добрые, подскажите пожалуйста в какую сторону рыть.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

Кронтаб того же пользователя, от которого пускаете ssh руками?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

t.t писал(а):
31.05.2010 17:16
Кронтаб того же пользователя, от которого пускаете ssh руками?

Да.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

Что в логах ssh-сервера, к которому пытаетесь подключаться?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

t.t писал(а):
31.05.2010 17:24
Что в логах ssh-сервера, к которому пытаетесь подключаться?

В /var/log/messages:

Код: Выделить всё

May 31 17:06:36 localhost sshd[21152]: Failed password for jf from 192.168.153.37 port 41104 ssh2
May 31 17:06:36 localhost last message repeated 2 times
May 31 17:06:36 localhost sshd[21155]: Connection closed by 192.168.153.37

На время не смотрите, оно на этом сервере немного отстает :). 192.168.153.37 - это мой айпи, тот на который я и пытаюсь скопировать.

Да, на том сервере alt linux, если что.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [Решено] scp и crontab

Сообщение watashiwa_daredeska »

sptica писал(а):
31.05.2010 17:36
Failed password
Почему password? Может, попробовать ключик -B scp передавать?
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

watashiwa_daredeska писал(а):
31.05.2010 17:56
sptica писал(а):
31.05.2010 17:36
Failed password
Почему password? Может, попробовать ключик -B scp передавать?

Попробовал с ключём -B. Не помогло :(. В /var/mail/jf в ошибках написал вместо 3-х строк одну:

Код: Выделить всё

From jf@alex  Mon May 31 18:01:01 2010
Return-Path: <jf@alex>
X-Original-To: jf
Delivered-To: jf@alex
Received: by alex (Postfix, from userid 1000)
    id C6C16C99F0; Mon, 31 May 2010 18:01:01 +0400 (MSD)
From: root@alex (Cron Daemon)
To: jf@alex
Subject: Cron <jf@alex> /usr/bin/scp -B 192.168.153.130:/var/backup/Dipost* /home/jf
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/jf>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jf>
Message-Id: <20100531140101.C6C16C99F0@alex>
Date: Mon, 31 May 2010 18:01:01 +0400 (MSD)

Permission denied (publickey,password).

На сервере, в /var/log/messages:

Код: Выделить всё

May 31 17:33:35 localhost sshd[21304]: Connection closed by 192.168.153.37
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [Решено] scp и crontab

Сообщение watashiwa_daredeska »

Попробуйте имя пользователя явно указать:

Код: Выделить всё

/usr/bin/scp jf@192.168.153.130:/var/backup/Dipost* /home/jf
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

watashiwa_daredeska писал(а):
31.05.2010 18:06
Попробуйте имя пользователя явно указать:

Код: Выделить всё

/usr/bin/scp jf@192.168.153.130:/var/backup/Dipost* /home/jf
Думаю, не в этом дело:
sptica писал(а):
31.05.2010 17:36
В /var/log/messages:

Код: Выделить всё

May 31 17:06:36 localhost sshd[21152]: Failed password for jf
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

В ручном режиме логин точно по ключу происходит?

Если так, нужно проверять, имеет ли кроновская задача доступ к ключам. Например, так для начала:

Код: Выделить всё

#!/bin/bash
whoami 1>&2
ls -l $HOME/.ssh 2>&1
scp ...
и этот файлик уже прописать в кронтабе (права на исполнение только не забудьте).
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: [Решено] scp и crontab

Сообщение sash-kan »

t.t писал(а):
31.05.2010 19:10
Например, так для начала
зачем же так сложно?
просто создать ещё одну задачу в кронтабе:
* * * * * ls -l ~/.ssh
и смотреть, что через минуту придёт на почту.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

sash-kan писал(а):
31.05.2010 19:27
t.t писал(а):
31.05.2010 19:10
Например, так для начала
зачем же так сложно?
просто создать ещё одну задачу в кронтабе:
* * * * * ls -l ~/.ssh
и смотреть, что через минуту придёт на почту.
Резонно, только >&2 я бы добавил; чтобы вывод тоже на почту пришёл.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: [Решено] scp и crontab

Сообщение sash-kan »

t.t писал(а):
31.05.2010 19:48
только >&2 я бы добавил; чтобы вывод тоже на почту пришёл.
гхм. крон должен отправить на почту и stdout и stderr в одном флаконе.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

sash-kan писал(а):
31.05.2010 22:27
t.t писал(а):
31.05.2010 19:48
только >&2 я бы добавил; чтобы вывод тоже на почту пришёл.
гхм. крон должен отправить на почту и stdout и stderr в одном флаконе.

Код: Выделить всё

* * * * * ls /home/tt

Shell

crontab: installing new crontab tt:~$ sleep 60 && mail No mail for tt tt:~$ sleep 60 && mail No mail for tt
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: [Решено] scp и crontab

Сообщение sash-kan »

t.t
у меня cron действует в соответствии с man cron:
QUOTE писал(а):cron then wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current minute. When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists).

Код: Выделить всё

dpkg --status cron | grep ^V
Version: 3.0pl1-105
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

Спасибо огромное за попытки помочь :).

Добавил в крон "* * * * * ls -l ~/.ssh >&2". Пришло:

Код: Выделить всё

From jf@alex  Tue Jun  1 10:18:01 2010
X-Original-To: jf
From: root@alex (Cron Daemon)
To: jf@alex
Subject: Cron <jf@alex> ls -l ~/.ssh >&2
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/jf>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jf>
Date: Tue,  1 Jun 2010 10:18:01 +0400 (MSD)

total 24
-rwx------ 1 jf jf   401 Apr 22 16:04 authorized_keys
-rw------- 1 jf jf   389 Jun  1 10:07 id_rsa.pub
-rwx------ 1 jf jf 13423 May 27 14:34 known_hosts


Решил, что я где-то что-то не так сделал при создании ключей. Пересоздал их по "ssh-keygen -t rsa", затем скопировал на сервер "ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.153.130". Попробовал залезть на сервер "ssh 192.168.153.130" - работает, попробовал скопировать по scp - работает. В кроне опять не работает и выводит:

Код: Выделить всё

From jf@alex  Tue Jun  1 10:23:01 2010
X-Original-To: jf
From: root@alex (Cron Daemon)
To: jf@alex
Subject: Cron <jf@alex> /usr/bin/scp -P 22 192.168.153.130:/var/backup/Dipost* /home/jf >&2
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/jf>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jf>
Date: Tue,  1 Jun 2010 10:23:01 +0400 (MSD)

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Попробовал сгенерировать ключи и скопировать их на сервер теми-же командами, что и на моей убунте, с соседней машины с дебианом - просто заработало. Чертовщина какая-то :).
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

sash-kan писал(а):
01.06.2010 10:28
t.t
у меня cron действует в соответствии с man cron:
cron then wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current minute. When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists).

Код: Выделить всё

dpkg --status cron | grep ^V
Version: 3.0pl1-105
Да, прошу прощения, недопроснулся. Это у меня что-то хитро настроено было.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

sptica писал(а):
01.06.2010 10:49
Попробовал сгенерировать ключи и скопировать их на сервер теми-же командами, что и на моей убунте, с соседней машины с дебианом - просто заработало. Чертовщина какая-то :).
А подключались при этом оттуда же и туда же? Т.е. разница только в способе генерации глючей?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: [Решено] scp и crontab

Сообщение sash-kan »

sptica писал(а):
01.06.2010 10:49
rwx------ 1 jf jf 401 Apr 22 16:04 authorized_keys
-rw------- 1 jf jf 389 Jun 1 10:07 id_rsa.pub
-rwx------ 1 jf jf 13423 May 27 14:34 known_hosts
и где здесь файл с ключом? вижу только публичный.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

sash-kan писал(а):
01.06.2010 11:38
sptica писал(а):
01.06.2010 10:49
rwx------ 1 jf jf 401 Apr 22 16:04 authorized_keys
-rw------- 1 jf jf 389 Jun 1 10:07 id_rsa.pub
-rwx------ 1 jf jf 13423 May 27 14:34 known_hosts
и где здесь файл с ключом? вижу только публичный.

Вы оказались правы, дело в наличии ключа. При этом из консоли он ходил при наличии только публичного ключа какое-то время. Сейчас не ходит. Так вот и сходят с ума, я же прекрасно помню, что заходил на сервер при наличии только id_rsa.pub в директории с ключами :).

В очередной раз спасибо за помощь и терпение :).
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Решено] scp и crontab

Сообщение t.t »

По паролю небось заходили? Иначе как?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

t.t писал(а):
01.06.2010 12:34
По паролю небось заходили? Иначе как?

В том то и дело что нет. Такое ощущение что бунта где-то кэшировала секретный ключ. Из консоли я ходил по ssh на сервер только при наличии публичного ключа в директории с ключами.

Может быть дело в том, что я в /etc/ssh/ssh_config явно указывал "IdentifyFile ~/.ssh/id_rsa" и "IdentifyFile ~/.ssh/id_rsa.pub".
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [Решено] scp и crontab

Сообщение watashiwa_daredeska »

t.t писал(а):
01.06.2010 12:34
Иначе как?
Ну, много ерунды всякой. ssh-agent, например, и «-A Enables forwarding of the authentication agent connection.»

sptica писал(а):
01.06.2010 12:42
Может быть дело в том, что я в /etc/ssh/ssh_config явно указывал "IdentifyFile ~/.ssh/id_rsa"
В том-то и дело, что ~/.ssh/id_rsa нету.


iУведомление от модератора blackdevil
ну зачем так некрасиво? :) пофиксил
Спасибо сказали:
sptica
Сообщения: 126
ОС: Ubuntu

Re: [Решено] scp и crontab

Сообщение sptica »

watashiwa_daredeska писал(а):
01.06.2010 12:53
t.t писал(а):
01.06.2010 12:34
Иначе как?
Ну, много хреноты всякой. ssh-agent, например, и «-A Enables forwarding of the authentication agent connection.»

sptica писал(а):
01.06.2010 12:42
Может быть дело в том, что я в /etc/ssh/ssh_config явно указывал "IdentifyFile ~/.ssh/id_rsa"
В том-то и дело, что ~/.ssh/id_rsa нету.

Да, на момент коннекта его там не было. ssh-agent не использовал. В любом случае спасибо за участие :).
Спасибо сказали:
Ответить