Ich kämpfe jetzt schon seit Tagen damit und kann nicht herausfinden, was ich falsch mache.
Ich habe eine Website auf einem VPS-Server. Jede Nacht erstelle ich ein Backup der Datenbank. Es wird auf meinem VPS-Server gespeichert. Ich möchte auch eine Kopie an mein NAS (Synology DS214play) zu Hause senden. Beide Server laufen unter Linux.
Also habe ich mich bei meinem VPS-Server angemeldet (als Root) und eine generiert ssh-keygen
.
Auf meinem VPS sieht es folgendermaßen aus:
[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
Anschließend habe ich die Datei auf das NAS kopiert, indem ichssh-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
Beim Hineinschauen NAS/authorized_keys
stelle ich fest, dass beide Schlüssel identisch sind.
Jetzt versuche ich, eine Testdatei vom VPS auf das NAS zu kopieren, und zwar mit:
[root@vps /]# scp -i ~/.ssh/id_rsa /test.txt admin@___.___.___.___:/volume1/SQL_backup
Das führt jedoch dazu, dass die Shell mich (jedes Mal) nach dem Kennwort fragt.
Wieso muss ich meinen Pass immer wieder vorzeigen?
Antwort1
Bei der Behebung von Problemen mit Daemons sollten Sie immer die Systemprotokolle überprüfen.
In diesem speziellen Fall werden Sie in den Systemprotokollen auf dem NAS
Host etwas Ähnliches sehen wie:
Authentication refused: bad ownership or modes for directory /home/admin
Das Problem wird in dieser Ausgabe angezeigt:
admin@NAS:~$ ls -alh
drwxrwxrwx 6 admin users 4.0K Jun 26 07:28 .
Aus Sicherheitsgründen verweigert SSH die Verwendung der authorized_keys
Datei, wenn ein Vorgänger des ~/.ssh
Verzeichnisses von jemand anderem als dem Benutzer oder Root beschreibbar ist (Vorfahr bedeutet /home/user/.ssh
, /home/user
, /home
, ). Dies liegt daran, dass ein anderer Benutzer das Verzeichnis (oder die Datei) durch sein eigenes /
ersetzen und sich dann per SSH in Ihren Benutzer einloggen könnte.~/.ssh
~/.ssh/authorized_keys
Um das Problem zu beheben, ändern Sie die Berechtigungen für das Verzeichnis etwa wie folgt:
chmod 755 ~
Antwort2
Haben Sie beim Erstellen mit möglicherweise ein Kennwort für Ihren privaten Schlüssel erstellt ssh-keygen
?
Folgendes ist der von mir verwendete Arbeitsablauf:
ssh-keygen
ssh-copy-id root@remote_host
scp /test.text root@remote_host:/opt/application/