Zum Hauptinhalt springen

SSH-Schlüssel auf dem Mac erzeugen und nutzen

Von Lucas Russo, Entwickler von SSHive · Aktualisiert am

Von keinem Schlüssel zu einem Server, der Passwörter ablehnt, in rund fünf Minuten: ein ed25519-Schlüssel aus dem Terminal oder aus SSHive, auf dem Server hinterlegt und von Ihren Profilen genutzt.

Geschätzte Dauer: 5 Minuten

Passwort-Logins sind genau das, was die Bots auf Port 22 rund um die Uhr zu erraten versuchen. Ein Schlüsselpaar ersetzt „etwas, das Sie wissen“ durch „etwas, das Sie besitzen“: Die private Hälfte verlässt Ihren Mac nie, der Server bewahrt nur die öffentliche Hälfte auf, und sobald alles eingerichtet ist, tippen Sie nicht mehr bei jeder Verbindung ein Passwort. Diese Anleitung nutzt ed25519, den kurzen, schnellen Schlüsseltyp, den jeder aktuelle OpenSSH-Server annimmt. Den Schlüssel erzeugen Sie entweder im Terminal, als Datei in ~/.ssh, oder in SSHive, das ihn verschlüsselt und außerhalb von ~/.ssh aufbewahrt. Beide Wege führen zum selben Ergebnis, und keiner braucht Pro: Passwort, Schlüssel und Agent funktionieren in der kostenlosen Version des SSH-Clients genauso.

Schritt für Schritt

  1. Das Schlüsselpaar erzeugen, in SSHive oder im Terminal

    In SSHive: Einstellungen › SSH-Schlüssel › Schlüssel erzeugen. Geben Sie ihm einen Namen, den Sie wiedererkennen (etwa prod-web), lassen Sie Ed25519 stehen, den als empfohlen markierten Typ (RSA 4096 und ECDSA sind für Server da, die ihn ablehnen), vergeben Sie bei Bedarf eine Passphrase und klicken Sie auf Erzeugen. Der private Schlüssel wird mit einem Schlüssel verschlüsselt, den der macOS-Schlüsselbund verwahrt, und landet nie in ~/.ssh. Im Terminal: ssh-keygen -t ed25519 -C "sie@example.com", mit der Eingabetaste ~/.ssh/id_ed25519 übernehmen, dann eine Passphrase. Diesen Weg nehmen Sie, wenn andere Werkzeuge auf dem Mac, git oder Ihre Skripte, den Schlüssel als Datei brauchen.
  2. Den öffentlichen Schlüssel auf den Server bringen (das letzte Passwort, das Sie dort eingeben)

    In SSHive erzeugter Schlüssel: Verbinden Sie sich einmal mit Passwort mit dem Server, öffnen Sie dann unter Einstellungen › SSH-Schlüssel neben dem Schlüssel Auf Host installieren und wählen Sie diese Sitzung. SSHive hängt den öffentlichen Schlüssel über die offene Verbindung an ~/.ssh/authorized_keys an, wie es ssh-copy-id täte, und sagt Bescheid, falls er schon dort stand. Mit Öffentlichen Schlüssel kopieren daneben fügen Sie ihn lieber selbst ein. Schlüsseldatei aus dem Terminal: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host, dann ein letztes Mal das Passwort.
  3. Den Schlüssel im Profil auswählen

    Öffnen Sie das Profil (Rechtsklick › Bearbeiten, oder + für ein neues). Wählen Sie unter Authentifizierung Privater Schlüssel, dann erscheint ein Menü SSH-Schlüssel. Ein in SSHive erzeugter Schlüssel steht unter Verwaltete Schlüssel (Tab Schlüssel), seine Passphrase sucht SSHive selbst heraus. Für eine Datei lassen Sie Lokale Datei… stehen, klicken auf Durchsuchen und wählen ~/.ssh/id_ed25519: Ein grünes ✓ heißt, SSHive kann sie lesen, ein oranges ⚠, dass macOS dieselbe Datei noch einmal ausgewählt haben will, um den Zugriff freizugeben. Setzen Sie gegebenenfalls das Häkchen Schlüssel durch eine Passphrase geschützt und tippen Sie sie einmal ein. Stehen Ihre Hosts mit IdentityFile-Zeilen schon in ~/.ssh/config? Diese Datei zu importieren füllt das Feld für jeden Host aus.
  4. Was SSHive aufbewahrt und wo

    Eine Schlüsseldatei, die Sie auswählen, bleibt in ~/.ssh: SSHive merkt sich nur ihren Pfad und die Erlaubnis von macOS, sie zu lesen. In SSHive erzeugte Schlüssel, Passphrasen und gespeicherte Passwörter werden auf Ihrem Mac mit einem Schlüssel verschlüsselt, den der macOS-Schlüsselbund verwahrt. Touch ID ist freiwillig: Touch ID vor dem Entschlüsseln von Passwörtern verlangen ist ein Schalter in den Einstellungen, standardmäßig aus.
  5. Passwort-Logins auf dem Server abschalten

    Sobald SSHive sich mit dem Schlüssel verbindet, härten Sie den Server: in /etc/ssh/sshd_config PasswordAuthentication no setzen, dann sshd neu laden (sudo systemctl reload ssh unter Debian und Ubuntu). Lassen Sie diese Sitzung offen und testen Sie eine neue Verbindung, bevor Sie sich abmelden: Wird der Schlüssel abgewiesen, kommen Sie noch hinein. Ab dann nimmt auf diesem Server nichts mehr ein Passwort an, und die Bots auf Port 22 haben nichts mehr zu raten.

Häufige Fragen

Soll ich RSA, ECDSA oder ed25519 verwenden?+
ed25519 ist heute die richtige Wahl: kurze Schlüssel, schnell, ohne bekannte Schwäche. RSA 4096 nur für Server mit OpenSSH vor Version 6.5, die ed25519 noch nicht kennt, oder für Systeme, deren Richtlinie noch RSA verlangt. ECDSA funktioniert, bringt gegenüber ed25519 aber nichts. Der Generator von SSHive bietet alle drei an, ed25519 zuerst.
Wo liegen meine SSH-Schlüssel auf macOS?+
Mit ssh-keygen erzeugte Schlüssel sind Dateien in ~/.ssh/; fügen Sie einen mit ssh-add --apple-use-keychain hinzu, bewahrt macOS seine Passphrase im Schlüsselbund auf. In SSHive erzeugte Schlüssel sind keine Dateien: SSHive speichert sie verschlüsselt und zeigt ihre öffentliche Hälfte unter Einstellungen › SSH-Schlüssel. Schlüsseldateien sichern Sie selbst: Wer die einzige Kopie eines privaten Schlüssels verliert, sperrt sich bei jedem Server aus, der ihm vertraut hat.
Kann ein Schlüssel für mehrere Server dienen?+
Ja. Installieren Sie denselben öffentlichen Schlüssel nacheinander mit Auf Host installieren auf jedem Server und wählen Sie ihn in jedem Profil aus. Der Tab SSH-Schlüssel zeigt neben jedem Schlüssel, wie viele Hosts ihn verwenden, und damit, was nicht mehr geht, bevor Sie einen löschen.

Passende SSHive-Funktionen

SSH-Terminal

GPU-beschleunigtes Terminal

SSHive kostenlos für macOS testen

Holen Sie sich den All-in-one-Client für SSH, SFTP, RDP und VNC auf dem Mac. Kostenloser Download, ohne Registrierung.

SSHive kostenlos laden