UCS Backup Backintime SSH Key - solved

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