Sie können Ihren öffentlichen Schlüssel auf die Remote-Computer kopieren. Solange die Authentifizierung mit öffentlichem Schlüssel aktiviert ist und Ihr öffentlicher Schlüssel auf dem Remotecomputer vorhanden ist, können Sie ssh
auf die Computer zugreifen, ohne ein Kennwort eingeben zu müssen.
Zuerst müssen Sie ein öffentliches / privates Schlüsselpaar wie folgt erstellen:
ssh-keygen -t rsa
Folgen Sie den Anweisungen. Wenn Sie gefragt werden, ob Sie den Schlüssel mit einer Passphrase schützen möchten, sagen Sie JA! Es ist eine schlechte Praxis, Ihre Schlüssel nicht mit einem Passwort zu schützen, und ich zeige Ihnen, wie Sie das Passwort nur gelegentlich eingeben müssen.
Wenn Sie bereits ein Schlüsselpaar haben, können Sie den obigen Schritt überspringen.
Angenommen, Ihr ssh-Schlüssel existiert auf Ihrem Mac als ~/.ssh/id_rsa.pub
, können Sie ihn auf einem Remote-Computer installieren , indem Sie Folgendes ausführen :
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Für Ihr spezielles oben genanntes Serverbeispiel sieht der Befehl folgendermaßen aus:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Sie müssen das Kennwort für eingeben root@123.456.789.012
, um diese Kopie auszuführen. Dies sollte jedoch das letzte Mal sein, dass Sie dies tun müssen. Angenommen, der Remote-Server sshd
ist für die Authentifizierung mit öffentlich-privaten Schlüsseln eingerichtet. Wenn Sie jetzt zur Box sshen, sollten Sie nicht nach einem Kennwort für das root
Konto gefragt werden, sondern nach dem Kennwort für Ihren Schlüssel . Lesen Sie weiter, wie Sie dies zu etwas machen, das Sie nicht die ganze Zeit eingeben müssen.
Wiederholen Sie den Vorgang für jeden Computer, auf den Sie statt eines Kennworts mit Ihren Schlüsseln zugreifen möchten.
Bitte beachten Sie, dass jeder , der Ihre ~/.ssh/id_rsa
Datei in den Händen hält, auf dieses System zugreifen kann, root
ohne ein Kennwort für das Remote-System einzugeben. Durch das Kennwort zum Schutz der Schlüsseldatei wird sichergestellt, dass das Kennwort bekannt sein muss, damit dieser Schlüssel verwendet werden kann. Stellen Sie sicher, dass die Datei sicher ist. Verwenden Sie die Festplattenverschlüsselung auf Ihrem Mac und behalten Sie die Berechtigungen für die Datei und das ~/.ssh/
Verzeichnis bei.
Um die Verwendung des Schlüssels zu vereinfachen, ohne jedes Mal das Kennwort eingeben zu müssen, führt OS X einen ssh-agent
Prozess im Hintergrund auf Ihrem Computer aus. Dieser Agent speichert das Schlüsselpaar bei der ersten Verwendung im Cache, sodass Sie nur gelegentlich Ihr Kennwort eingeben müssen. Wenn Sie Ihren Mac nur in den Ruhezustand versetzen, ihn niemals neu starten, können Sie längere Zeit ohne Eingabe Ihres Kennworts arbeiten.
Sie können alle Ihre SSH-Schlüssel mit vorab zwischenspeichern, ssh-agent
indem Sie Folgendes ausführen :
ssh-add
Jetzt müssen Sie sich nur noch das Schlüsselkennwort merken , nicht mehr die vielen verschiedenen Kontokennwörter. Normalerweise behalte ich meine Schlüsselkennwörter in 1Password (keine Zugehörigkeit), um die Anzahl der Kennwörter, die ich mir merken muss, weiter zu vereinfachen. Dann schaue ich sie einfach in 1Password nach und füge sie in das Terminal ein, wenn ich meinen Mac neu starte und meine Ausführung ssh-agent
neu starte.
Wenn Sie in dieser Frage das Kopieren Ihres Schlüssels auf Remotecomputer mit der Terminal.app-Verbindungsverwaltungslösung kombinieren , haben Sie eine ähnliche Erfahrung wie PuTTY für GUI-Verbindungen.
Überprüfen Sie auf der Serverseite Folgendes /etc/ssh/sshd_config
und stellen Sie sicher:
PubkeyAuthentication yes
ist in der Konfiguration aktiviert (standardmäßig in OpenSSH). Möglicherweise möchten Sie auch Folgendes festlegen:
PasswordAuthentication no
Während Sie dort sind, ist die kennwortbasierte Authentifizierung deaktiviert und Schlüssel sind die einzige Möglichkeit, auf das Gerät zuzugreifen.
Sie müssen sshd auf dem Computer neu starten, wenn Sie Änderungen an der Konfigurationsdatei vornehmen.