Назад | Перейти на главную страницу

Как выполнить синхронизацию с сервером с помощью ключей ssh

Я работаю на Mac и хочу еженедельно настраивать crontab для rsync с моего VPS, чтобы получать архивы резервных копий. Я использую ключи ssh (пароли не разрешены на VPS), и обычно я могу использовать ssh без каких-либо запросов (у моего закрытого ключа есть кодовая фраза, но она хранится в цепочке ключей Mac). Однако, когда cron запускает скрипт, он терпит неудачу и отправляет мне электронное письмо с сообщением, что ssh не удалось:

Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9]

Выполняемый скрипт:

#!/bin/sh
rsync -Cavz -e "ssh -i /Users/bob/.ssh/id_rsa" bob@myvps:/backups/ ~/Documents/Backups

Что я делаю не так?

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

Использование ключа без парольной фразы менее безопасно, но вы можете ограничить его использование. Видеть ФОРМАТ ФАЙЛА AUTHORIZED_KEYS раздел в sshd руководство.