Я уже несколько дней бьюсь с этим и не могу понять, что я делаю не так.
У меня есть сайт на VPS-сервере. Каждую ночь я делаю резервную копию базы данных. Она хранится на моем VPS-сервере. Я также хочу отправить копию на свой NAS (Synology DS214play) дома. Оба сервера работают на Linux.
Итак, я вошел на свой VPS-сервер (как root) и сгенерировал файл ssh-keygen
.
На моем VPS это выглядит так:
[root@vps /]# cd ~
[root@vps ~]# ls -alh
dr-xr-x---. 7 root root 4.0K Jun 25 18:58 .
dr-xr-xr-x. 24 root root 4.0K Jun 25 19:33 ..
drwx------ 3 root root 4.0K Jun 25 20:29 .ssh
[root@vps ~]# cd .ssh
[root@vps .ssh]# ls -alh
drwx------ 3 root root 4.0K Jun 25 20:29 .
dr-xr-x---. 7 root root 4.0K Jun 25 18:58 ..
-rw------- 1 root root 1.7K Jun 26 07:27 id_rsa
-rw-r--r-- 1 root root 403 Jun 26 07:27 id_rsa.pub
-rw------- 1 root root 394 Jun 25 20:29 known_hosts
Затем я скопировал файл на NAS с помощьюssh-copy-id
admin@NAS:/$ cd ~
admin@NAS:~$ ls -alh
drwxrwxrwx 6 admin users 4.0K Jun 26 07:28 .
drwxrwxrwx 13 root root 4.0K Jun 21 20:57 ..
drwx------ 2 admin users 4.0K Jun 26 07:28 .ssh
admin@NAS:~$ cd .ssh
admin@NAS:~/.ssh$ ls -alh
drwx------ 2 admin users 4.0K Jun 26 07:28 .
drwxrwxrwx 6 admin users 4.0K Jun 26 07:28 ..
-rw------- 1 admin users 403 Jun 26 07:27 authorized_keys
При взгляде VPS/id_rsa.pub
я NAS/authorized_keys
вижу, что оба ключа идентичны.
Теперь я пытаюсь скопировать тестовый файл с VPS на NAS с помощью:
[root@vps /]# scp -i ~/.ssh/id_rsa /test.txt admin@___.___.___.___:/volume1/SQL_backup
Однако это приводит к тому, что Shell каждый раз запрашивает у меня пароль.
Почему мне приходится постоянно отдавать свой пропуск?
решение1
При устранении неполадок с демонами всегда следует проверять системные журналы.
В этом конкретном случае, если вы проверите системные журналы на NAS
хосте, вы увидите что-то похожее на:
Authentication refused: bad ownership or modes for directory /home/admin
Проблема показана в этом выводе:
admin@NAS:~$ ls -alh
drwxrwxrwx 6 admin users 4.0K Jun 26 07:28 .
В целях безопасности SSH откажется использовать authorized_keys
файл, если любой предок каталога ~/.ssh
доступен для записи кому-либо, кроме пользователя или root (предок означает /home/user/.ssh
, /home/user
, /home
, /
). Это связано с тем, что другой пользователь может заменить ~/.ssh
каталог (или ~/.ssh/authorized_keys
файл) своим собственным, а затем подключиться по ssh к вашему пользователю.
Чтобы исправить это, измените права доступа к каталогу, например:
chmod 755 ~
решение2
Возможно, вы создали пароль для своего закрытого ключа при его создании с помощью ssh-keygen
.
Ниже приведен рабочий процесс, который я использую:
ssh-keygen
ssh-copy-id root@remote_host
scp /test.text root@remote_host:/opt/application/