Ich möchte mich über ssh bei einer Gegenstelle anmelden können, ohne ständig das Passwort eingeben zu müssen.
- Wie richte ich es ein?
- Ist ein anderer Befehl erforderlich, um eine Sitzung ohne Kennwort auszuführen?
ssh
authentication
Oxwivi
quelle
quelle
Antworten:
Antworten
Führen Sie diese Befehle aus:
Dann müssen Sie den neuen Schlüssel auf Ihren Server kopieren :
Nachdem der Schlüssel kopiert wurde, führen Sie ssh wie gewohnt auf dem Computer aus:
Sie können sich jetzt anmelden, ohne ein Kennwort von dem Computer einzugeben, auf dem Sie die Befehle ausgeführt haben.
Beispiel
Erläuterung
Dies setzt voraus, dass Sie bereits erfolgreich über SSH eine Verbindung zu Ihrem Server herstellen können.
Sie müssen ein SSH-Schlüsselpaar generieren, mit dem Sie sich ohne Kennwort identifizieren können. Wenn Sie möchten, können Sie die Schlüssel mit einem Passwort schützen. Sie können dieses Feld jedoch auch leer lassen, um einen SSH-Zugriff ohne Passwort zu ermöglichen.
ssh-keygen
dieses ausführen, um eineid_rsa
undid_rsa.pub
-Datei zu erstellen . Diepub
Datei wird auf den Servern gespeichert, der private Schlüssel (id_rsa
) verbleibt bei Ihnen und zeigt an, wie Sie sich identifizieren.ssh-copy-id user@server
indem Sie den Benutzer durch den Remotebenutzer und den Server mit dem DNS-Namen oder der IP-Adresse des Computers ersetzen. Sie werden aufgefordert, Ihr SSH-Passwort einzugeben. Wenn alles erfolgreich abgeschlossen wurde, können Sie über auf das Gerät zugreifen,ssh user@server
ohne ein Passwort zu benötigen.Verweise
quelle
ssh-keygen
, den Anweisungen auf dem Bildschirm zu folgen und dannssh-copy-id user@server
Benutzer durch Ihren Remotebenutzer und Server durch den Remotecomputer zu ersetzenssh-copy-id "[email protected] -p 1234"
.Geben Sie die folgenden Befehle ein:
ssh-keygen
Drücken Sie EnterTaste , bis Sie die Aufforderung erhalten
ssh-copy-id -i root@ip_address
(Es wird einmalig nach dem Passwort des Hostsystems gefragt)
ssh root@ip_address
Jetzt sollten Sie sich ohne Passwort anmelden können.
quelle
So mache ich das normalerweise:
ssh-keygen -t rsa
(Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, lassen Sie es leer.)
Dann:
cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'
(Dazu muss sich der Ordner .ssh im Ausgangsverzeichnis auf dem Zielhostnamen befinden, in dem sich die Datei authorized_keys befindet.)
Ersetzen Sie natürlich den Benutzernamen durch den gewünschten Benutzernamen und den Hostnamen durch den gewünschten Hostnamen oder die gewünschte IP-Adresse
Danach nur noch SSH zu dieser Box, so wie du es gewohnt bist.
quelle
touch
undchmod
in Rinzwinds Antwort?.ssh/authorized_keys
Datei auf 0600 chmod oder dies wird nicht funktionierenIch benutze normalerweise
sshpass
dafür, installiere es mitsudo apt-get install sshpass
und benutze es soquelle
sshpass
ein sehr nützlicher Hack, wenn Sie die Authentifizierungsmethode auf dem Remote-Server nicht ändern können!https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication
quelle
PasswordAuthentication no
alle Benutzer? Wenn nicht, wie schalte ich es für normale Benutzer aus, aber lasse es für root unverändert, während ich es teste? Ich möchte es nicht wirklich fesseln und mich komplett aussperren.Permission denied (publickey).
mitPasswordAuthentication no
. Was soll ich tun Ändere ichPasswordAuthentication no
auf einem anderen Host?Diese Lösung ist speziell für Anwender mit Windows - ssh in ihre Remote - Maschinen einschließlich Cloud Bilder auf AWS - Cloud und GCE Wolke
Haftungsausschluss
Kürzlich wurde diese Lösung zum Remote-Anmelden neuer bereitgestellter VM-Images auf GCE verwendet.
Benutztes Werkzeug:
puttygen
puttygen herunterladenwinscp
Winscp herunterladenDurchzuführende Schritte:
Wie es geht:
1. Generieren Sie einen Schlüssel / ein Paar oder verwenden Sie einen vorhandenen privaten Schlüssel
Wenn Sie einen privaten Schlüssel besitzen:
Öffnen Sie
puttygen
, drücken Sie die Ladetaste und wählen Sie Ihre private Schlüsseldatei (*.pem
) aus.Wenn Sie keinen privaten Schlüssel besitzen:
puttygen
,(von Quelle 1, unten angegebener Link)
2. Erstelle eine neue 'authorized_keys' Datei (mit
notepad
)Kopieren Sie Ihre öffentlichen Schlüsseldaten aus dem Abschnitt "Öffentlicher Schlüssel zum Einfügen in die OpenSSH-Datei authorized_keys" des PuTTY-Schlüsselgenerators und fügen Sie die Schlüsseldaten in die
authorized_keys
Datei ein.Stellen Sie sicher, dass diese Datei nur eine Textzeile enthält.
3. Laden Sie den Schlüssel auf den Linux-Server hoch
Laden Sie die Datei "authorized_keys" in das Ausgangsverzeichnis auf dem Remote-Computer hoch.
4. Legen Sie die richtigen Berechtigungen fest
.ssh
Verzeichnis erstellen (falls nicht vorhanden)authorized_keys
Datei in.ssh
Verzeichnis kopieren .(Dies ersetzt alle vorhandenen
authorized_keys
Dateien, beachten Sie dies).Wenn eine Datei vorhanden war, fügen Sie einfach den Inhalt dieser Datei zur vorhandenen Datei hinzu.
Führen Sie Befehle aus, um Berechtigungen festzulegen:
Jetzt können Sie
ssh
jedes Mal auf einen Remote-Computer zugreifen, ohne Anmeldeinformationen eingeben zu müssen.Weitere Lektüre:
Generieren und Hochladen von SSH-Schlüsseln unter Windows
Authentifizierung mit OpsenSSH-Schlüsselzertifikaten PEM PUB CRT
quelle
Wenn Sie ein öffentliches Schlüsselpaar erstellen und sich mit unserem neu erstellten öffentlichen Schlüssel anmelden, müssen Sie Ihr Kennwort nicht eingeben. Abhängig von der Konfiguration Ihres Schlüsselbunds und / oder SSH-Agenten müssen Sie Ihren Schlüssel möglicherweise mit einer Passphrase schützen.
Hier ist eine von vielen kurzen Anleitungen für Sie. Für die Sicherheit dieser Methode ist es von entscheidender Bedeutung, dass der generierte private Schlüssel privat bleibt! Sie sollten es niemals an Dritte weitergeben oder den Zugriff darauf in irgendeiner Form gestatten.
Dieser Befehl generiert einen relativ starken Schlüssel für
~/.ssh/
:In
~/.ssh/
finden Sie Ihren öffentlichen Schlüssel alsid_rsa.pub
. Der Inhalt sollte an Ihreauthorized_keys
Serverdatei angehängt werden, indem Sie die Datei über ein transportierbares Medium (USB-Stick) transportieren oder die Kennwortauthentifizierung auf dem Server kurz aktivieren, dann verwendenssh-copy-id ~/.ssh/id_rsa.pub username@server
und wieder deaktivieren.Wenn Sie sich dafür entschieden haben, Ihren Schlüssel mit einer Passphrase zu sichern (im ersten Schritt), können Sie
ssh-agent
oder den Ubuntu-Schlüsselring verwenden, um diese Pharse lokal zu sichern, damit Sie sie nicht die ganze Zeit eingeben müssen.quelle
Einige Ergänzungen vornehmen:
Mac standardmäßig nicht, müssen
ssh-copy-id
Sie es selbst installieren:Weitere Informationen finden Sie hier: https://github.com/beautifulcode/ssh-copy-id-for-OSX
Wenn Sie eine Portweiterleitung durchgeführt haben, sollte der Befehl folgendermaßen lauten:
Beachten Sie, dass die Anführungszeichen erforderlich sind.
quelle
Remote Login / Kopie ohne Passwort
Die Anwendungen
ssh
undscp
für Remote - Login und Remote - Copy bzw. können Sie mit einer Remote - Host kommunizieren , ohne ein Passwort zu geben. Dies setzt voraus, dass Sie einem Authentifizierungsverfahren wie dem unten beschriebenen folgen. Unter Client verstehen wir die Maschine, auf der Sie sitzen, und unter Server die Maschine, auf der Sie sich anmelden möchten, ohne ein Kennwort anzugeben. Die Schritte des Authentifizierungsverfahrens sind:$HOME/.ssh
.$HOME/.ssh/authorized_keys
oder$HOME/.ssh/authorized_keys2
an den Server an.Es gibt drei verschiedene Arten von Authentifizierungsprotokollen. Sie geben den Typ an, wenn Sie ssh-keygen ausführen:
chmod 0700
sicherstellen, dass diese Datei für andere nicht lesbar ist) und zur Datei identity.pub (öffentlicher Schlüssel).ssh-keygen -t rsa
Dateienid_rsa
(privater Schlüssel) undid_rsa.pub
(öffentlicher Schlüssel) erzielt.ssh-keygen -t dsa
und führt zu Dateienid_dsa
(privater Schlüssel) undid_dsa.pub
(öffentlicher Schlüssel)Wenn Sie ssh-keygen ausführen, können Sie sich auf Standardantworten verlassen (was bedeutet, dass Sie keine Passphrase angeben). Dies macht die gesamte Einrichtung einfach, aber auch unsicher.
Sie können den Schlüsseltyp angeben, der von einer Option für ssh verwendet werden soll .
ssh -1
Kräfte Verwendung von RSA1 Tasten (Protokoll Version 1), währendssh -2
Kräfte ssh versuchen RSA oder DSA Schlüssel nur (Protokoll Version 2). In den folgenden Beispielen generieren und installieren wir RSA1- und DSA- Schlüssel auf dem Remote-Host, damit Sie flexibler sind..ssh
Mit der Zeile können Sie eine Konfigurationsdatei in Ihrem Verzeichnis erstellenDies veranlasst ssh , eine RSA1-Verbindung (Protokollversion 1) vor RSA / DSA (Protokollversion 2) zu versuchen .
Verwenden von RSA1-Tasten
Verwenden von DSA-Schlüsseln
Dies ist alles, was Sie tun müssen, wenn Sie beim Generieren der Schlüssel keine Passphrase verwendet haben. Sie können die Verbindung testen, indem Sie ssh $ remote ausführen und prüfen, ob Sie sich ohne Angabe eines Kennworts anmelden können (möglicherweise müssen Sie
-1
oder-2
als Optionen für ssh verwenden ). Der Vorgang kann natürlich für jeden Computer wiederholt werden, auf dem Sie sich anmelden möchten.Wenn Sie eine Passphrase verwendet haben, müssen Sie das Programm ausführen
ssh-agent
, um eine spezielle Shell zu starten. Anschließend müssen Siessh-add
Ihre Kombination aus Schlüssel und Passphrase bei registrierensshd
. Weitere Informationen finden Sie auf den Manpages dieser Programme.Ein Skript zur Automatisierung von kennwortfreien Verbindungen:
ssh-no-password.sh
kopiert von: http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html
quelle
Ich möchte eine Antwort für diejenigen hinzufügen, die möglicherweise feststellen, dass sie das Passwort eingeben sollten, obwohl sie alle Antworten hier gelesen haben, weil Sie IdentitiesOnly als Ja festgelegt haben. Und die Antwort hier kann Ihnen viel Zeit sparen, um mehrere Schlüssel zu verwalten - Schlüssel für Git oder Server.
Nachdem ich den Schlüssel generiert und auf den Server kopiert habe:
Ich fand es hat nicht funktioniert.
Dann ging ich zum
~/.ssh/config
Client, um die Datei zu überprüfen. Ich sah das unten:Dann füge ich das oben hinzu:
Ich kann mich nur durch Eingabe einloggen
ssh somename
.Dann können Sie mehrere SSH-Schlüssel mit Ihren Lieblingsnamen hinzufügen, und Sie müssen nur die Einstellungen wie die obigen vier Zeilen zur Konfigurationsdatei hinzufügen.
Host ist der Name, den Sie eingeben möchten, wenn Sie den Server später verbinden. Der Hostname ist die IP des Servers. Benutzer ist der Benutzername, den Sie beim Server anmelden. und die Identitätsdatei ist die Datei, in der Sie den von Ihnen generierten Schlüssel speichern.
quelle