Normalerweise verbinde ich mich mit dem Remote-Server
ssh user@server.com -p 11000
und dann geben Sie das Passwort jedes Mal für den Benutzer. Wie vermeide ich die Eingabe des Passworts bei jeder Verbindung mit ssh?
Normalerweise verbinde ich mich mit dem Remote-Server
ssh user@server.com -p 11000
und dann geben Sie das Passwort jedes Mal für den Benutzer. Wie vermeide ich die Eingabe des Passworts bei jeder Verbindung mit ssh?
Antworten:
Zuerst geben Sie Folgendes ein ~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
Sie können ssh server
dann das Passwort eingeben.
Zweitens , überprüfen Sie in , ~/.ssh/
um zu sehen , wenn Sie Dateien mit dem Namen id_rsa
und id_rsa.pub
. Wenn nicht, haben Sie keinen Schlüssel eingerichtet, sodass Sie ein Paar mit generieren müssen ssh-keygen
. Sie können den Schlüsseln ein Passwort geben oder nicht. Die generierte Datei id_rsa.pub
sollte folgendermaßen aussehen:
ssh-rsa lotsofrandomtext user @ local
Drittens , ssh an den Server, erstelle die Datei, ~/.ssh/authorized_keys
wenn sie nicht existiert. Fügen Sie dann hier den Inhalt des ~/.ssh/id_rsa.pub
zuvor generierten hinzu. Dies kann bedeuten, dass Sie den Dateiinhalt in Ihre Zwischenablage kopieren, dann ~/.ssh/authorized_keys
in einem Texteditor öffnen und das Objekt einfügen.
Alternativ können Sie den Befehl verwenden ssh-copy-id server
(durch server
den Namen in ersetzen ~/.ssh/config
). Dies macht dasselbe wie oben. Manchmal habe ich gesehen ssh-copy-id
, wie ich feststeckte, also mag ich es nicht wirklich.
Sie sollten jetzt in der Lage sein, mit just zu sshen ssh server
, es sei denn, Sie möchten Ihren privaten Schlüssel mit einer Passphrase schützen. Wenn Sie keine Passphrase verwenden, sollten Sie Ihren privaten Schlüssel im Allgemeinen auf andere Weise schützen (z. B. durch vollständige Festplattenverschlüsselung).
Viertens (nur erforderlich, wenn Sie Ihren privaten Schlüssel mit einer Passphrase schützen), geben Sie Folgendes ein~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
In diesem Fall müssen Sie die Passphrase nur einmal pro Computer-Start eingeben.
User user
Zeile hinzufügen ~/.ssh/config
.
Wenden Sie sich an die schlüsselbasierte Authentifizierung .
ssh -P 11000
ich mit ssh kopieren. Danke vielmals.
Ergänzend zu der Antwort von phunehehe finden Sie im Gentoo Linux Keychain Guide eine Anleitung zum Schlüsselbund . Schlüsselbund verwendet auch ssh-agent . Der ssh-agent-Daemon stellt die Passphrase zur Verfügung (sie wird nicht mehr verfügbar, wenn der ssh-agent-Daemon stirbt) reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
.