Hey,
habe meinen UCS Server in einer VM von VMWare installiert und versuche nun seit geraumer Zeit diesen über das Hostsystem (Lubuntu) auf eine NAS (DiskStation) wegzusichern. Dafür wurde mir das Programm backintime empfohlen. Ich habe mich entschieden den ganzen Prozess per SSH zu machen und backintime will jedoch nicht Benutzernamen und Passwort der NAS, sondern nur den Benutzernamen und die Anmeldung per SSH-Key durchführen. Diesen habe ich, wie in dieser Anleitung erklärt erstellt und auf beiden Systemen installiert (https://backintime.readthedocs.io/en/latest/settings.html#ssh), jedoch ist das passwortlose Anmelden schlichtweg nicht möglich. Ich werde, wenn ich mich versuche per Terminal & SSH mit der NAS zu verbinden immer nach einem Passwort gefragt, wenn ich es mit backintime versuche bekomme ich die Fehlermeldung ausgespuckt “passwortloses anmelden nicht möglich”. Weiß nun echt nicht mehr weiter.
Danke für Eure Hilfe
Niki
Ich neheme an, Du willst das als “root” machen, oder? Wenn ja, was sagt:
grep PermitRootLogin /etc/ssh/sshd_config
Ansonsten gilt prinzipiell (parameter für den Key nach Geschmack …) folgendes (hie z.B. mit RSA):
ssh-keygen -t RSA -b 4096
Die Frage nach dem Passwort einfach mit “Enter” übergehen so dass kein Passwort gesetzt wird. Das erzeugt im Home
im Verzeichnis .ssh
ein Keypair. Im Falle von RSA den private Key in der Datei id_rsa
und den public Key in der Datei id_rsa.pub
Dann:
ssh-copy-id root@zielhost
Das funktioniert aber nur, wenn auf dem Zielhost in der /etc/ssh/sshd_config
der Wert für PermitRootLogin
auf yes
gesetzt ist. Wenn man möchte kann man das ja später wieder ändern, z.B. auf prohibit-password
. Man kann auch einfach auf irgend einem anderen Weg den Inhalt der Datei id_rsa.pub
(im Falle von RSA) an die Datei /root/.ssh/authorized_keys
auf dem Zielsystem anhängen, das hat die selbe Wirkung. Wichtig dabei ist aber, dass die authorized_keys
als User und Gruppe root
hat und die Permissions auf 600 gesetzt sind, sonst wird es nicht klappen.
Danach muss ssh root@zielhost
funktionieren.
Danke für die Antwort, habe das jetzt mit dem ssh-keygen geschafft, bekomme jedoch folgende fehlermeldung…
sshfs -p 22 -o ServerAliveInterval=240 -o IdentityFile=/home/niki/.ssh/id_rsa -o idmap=user Backup@192.168.201.210:/var/services/homes/Backup/backup
/home/niki/.local/share/backintime/mnt/DCBCBCCD/mountpoint kann nicht eingebunden werden
Da drängt sich sofort die Fragen auf: Gibt es die Zwei Verzeichnisse?
/var/services/homes/Backup/backup
/home/niki/.local/share/backintime/mnt/DCBCBCCD
Was passiert wenn du das auf der Shell machst?
sshfs -p 22 -o ServerAliveInterval=240 -o IdentityFile=/home/niki/.ssh/id_rsa -o idmap=user Backup@192.168.201.210:/var/services/homes/Backup/backup /home/niki/.local/share/backintime/mnt/DCBCBCCD
Huhu,
ssh
hat einige Anforderungen an Datei- und Verzeichnisrechte, auf dem Client u.a.:
- Das private Keyfile darf nur für den Besitzer les- und schreibbar sein.
- Das Verzeichnis, in dem das private Keyfile liegt, darf nur für den Besitzer schreibbar sein.
- Beide müssen dem Benutzer gehören, der
ssh
in dem Moment ausführt.
Auf dem Server gibt’s ähnliche aber leicht andere Anforderungen:
- Die
~/.ssh/authorized_keys
darf nur für den Besitzer schreibbar sein. - Das Verzeichnis
~/.ssh
darf nur für den Besitzer schreibbar sein. - Beide müssen dem Benutzer gehören, der
ssh
in dem Moment ausführt.
Probieren Sie also zumindest mal noch:
# Auf dem Server:
chown -R niki: ~niki/.ssh
chmod og-w ~niki/.ssh
chmod og-rwx ~niki/.ssh/id_rsa
# Auf dem NAS:
chown -R Backup: ~Backup/.ssh
chown -R og-w ~Backup/.ssh
Anschließend wäre noch die Ausgabe von Folgendem interessant:
# Auf dem Server:
ssh -v -i ~/.ssh/id_rsa Backup@192.168.201.210
# Auf dem NAS:
ls -ld ~Backup ~Backup/.ssh ~Backup/.ssh/authorized_keys
cat ~Backup/.ssh/authorized_keys
mosu