Estou lutando há dias com isso e não consigo encontrar o que estou fazendo de errado.
Eu tenho um site em um servidor VPS. Todas as noites faço um backup do banco de dados. Ele é armazenado no meu servidor VPS. Também quero enviar uma cópia para meu NAS (Synology DS214play) em casa. Ambos os servidores operam em Linux.
Então, entrei no meu servidor VPS (como root) e gerei um arquivo ssh-keygen
.
No meu VPS é assim:
[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
Então copiei o arquivo para o NAS usandossh-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
Ao olhar VPS/id_rsa.pub
, NAS/authorized_keys
vejo que ambas as chaves são idênticas.
Agora estou tentando copiar um arquivo de teste do VPS para o NAS usando:
[root@vps /]# scp -i ~/.ssh/id_rsa /test.txt admin@___.___.___.___:/volume1/SQL_backup
No entanto, isso faz com que o Shell me peça a senha (todas as vezes).
Por que tenho que continuar dando meu passe?
Responder1
Ao solucionar problemas com daemons, você deve sempre verificar os logs do sistema.
Neste caso específico, se você verificar os logs do sistema no NAS
host, verá algo semelhante a:
Authentication refused: bad ownership or modes for directory /home/admin
O problema é mostrado nesta saída:
admin@NAS:~$ ls -alh
drwxrwxrwx 6 admin users 4.0K Jun 26 07:28 .
Por segurança, o SSH se recusará a usar o authorized_keys
arquivo se qualquer ancestral do ~/.ssh
diretório puder ser gravado por alguém que não seja o usuário ou root (ancestral significando /home/user/.ssh
, /home/user
, /home
, /
). Isso ocorre porque outro usuário pode substituir o ~/.ssh
diretório (ou ~/.ssh/authorized_keys
arquivo) pelo seu próprio e, em seguida, fazer ssh no seu usuário.
Para corrigir, altere as permissões no diretório com algo como:
chmod 755 ~
Responder2
Qualquer chance de você ter criado uma senha para sua chave privada ao criá-la usando ssh-keygen
.
A seguir está o fluxo de trabalho que uso:
ssh-keygen
ssh-copy-id root@remote_host
scp /test.text root@remote_host:/opt/application/