Um sich mit einem ssh-Schlüssel an einem entfernten Server anzumelden, muss ein Schlüsselpaar auf dem Quellrechner erstellt werden. Der öffentliche Schlüssel wird dann auf den entfernten Server übertragen. Das ist praktisch die Vorbereitung, um später die Passwortanmeldung auf dem Server für den Account root abzustellen.
Der Schlüssel ist in dieser Beschreibung mit id_rsa_deinkey benannt. Den könnt ihr natürlich an eure Wünsche anpassen.
Schlüsselpaar erstellen:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_deinkey
Den öffentlichen Schlüssel auf den entfernten Server kopieren:ssh-copy-id -i id_rsa_deinkey deinaccount@dein.server
Berechtigungen auf dem entfernten Server setzen:cd .ssh
chmod 600 authorized_keys
Agent für automatische Nutzung des Schlüssels auf dem Quellgerät einstellen:
eval ssh-agent
Damit der ssh Schlüssel mit dem Agent benutzt werden kann, muss der ssh-add Befehl ab OS-Version 12 mit –apple-use-keychain ausgeführt werden. Das Kürzel -K wurde abgekündigt.
Nach der Schlüsselerstellung muss der Befehl dann so aussehen:ssh-add --apple-use-keychain ~/.ssh/id_rsa_deinkey
Mit einer config-Datei im Verzeichnis .ssh kann man die Zuordnung der Schlüssel zu dem Agent über Neustarts hinweg festlegen.
Die Datei erstellen, wenn sie noch nicht vorhanden ist, oder öffnen:nano ~/.ssh/config
Folgende Einträge hinzufügen:Host *
UseKeyChain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa_deinkey
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Host namefürdeineverbindung
HostName
dein.server.irgendwoUser deinAnmeldename
IdentityFile ~/.ssh/id_rsa_deinkey
Der Vorteil dieser config-Datei ist, dass im Terminal die Verbindung durch den einfachen Befehl ssh namefürdeineverbindung
aufgebaut werden kann. Der Name für die Verbindung kann für einen NextCloud Server zum Beispiel einfach nc sein, oder next. Das sähe dann so aus: ssh next
Sollte nach einem Neustart erneut das Passwort bei der ssh Anmeldung erfragt werden, kann es sein, dass man in den Systemeinstellungen dem ssh-wrapper einmal Festplattenvollzugriff geben muss. Dann den ssh-add Befehl nochmals ausführen, neu starten und den Vollzugriff wieder entziehen.
Bei mir hat es geklappt, nachdem ich die config Datei in die obige Reihenfolge umgestellt hatte. Allerdings habe ich auch gleichzeitig den Vollzugriff zugelassen. Deswegen kann ich jetzt nicht genau sagen, was ursächlich die Lösung war. Müsst ihr halt mal ausprobieren, wie es für euch funktioniert.
Diese Beschreibung ist mit viel Unterstützung meiner Zeitleiste bei Mastodon entstanden. Vor allem @newdefined@troet.cafe hat mich nachhaltig unterstützt und wichtige Hinweise und Tipps gegeben. Danke dafür.