Wie kann man mit ssh-keygen einen privat-öffentlichen Schlüssel generieren und autorisieren?

19

Ich möchte einen öffentlich-privaten Schlüssel auf Server 1 generieren und an einem anderen als dem Standardspeicherort speichern.

Speichern Sie anschließend den öffentlichen Schlüssel auf Server 2. noch einmal nicht am Standardspeicherort.

Machen Sie diesen Schlüssel dann zu einem autorisierten Schlüssel.

Ich kann jedoch keine authorized_keysDatei im ~/.sshOrdner finden. Wie mache ich es autorisiert?

Aditya
quelle
1
ssh-keygen ist der Befehl zum Generieren von Schlüsseln. Während der Erstellung wird nach dem Speicherort der Schlüsseldatei gefragt. Ich denke, Sie müssen den autorisierten
Dateischlüssel

Antworten:

22
  1. Rennen ssh-keygen -f filename.
  2. Lauf scp filename username@server:filename-on-server
  3. Am Server anmelden und ausführen cat filename-on-server >> ~/.ssh/authorized_keys

Sie können auch die Schritte 2 und 3 durch ersetzen ssh-copy-id -i filename username@server.

Mikel
quelle
Ich bekomme einen Fehler: zu viele Argumente
IgorGanapolsky
@Igor bei welchem ​​Schritt?
Mikel
1
Sollten Sie nicht Dateiname.pub anstatt Dateiname anhängen (welches ist Ihr privater Schlüssel?)
Samuel
1

Verwenden ssh-keygenBefehl. Auf dem Server (auf dem ssh gespeichert werden soll) wird der öffentliche Schlüssel in einer Datei gespeichert ~/.ssh/authorized_keys. Wenn Sie noch kein .ssh-Verzeichnis in Ihrem Heimverzeichnis (~) haben, erstellen Sie es (Vorsicht: Aus Sicherheitsgründen scheint sshd pingelig zu sein - kein anderer Benutzer kann diese Datei / dieses Verzeichnis lesen. Es ist besser, sie auszugeben chmod 700 in Ihrem .ssh-Verzeichnis und chmod 600 in der Datei darin).

Auf dem Computer, von dem aus Sie sshen möchten ("Client"), können Sie den privaten Schlüssel verwenden, um anschließend sshen zu können. Sie können es überall speichern und dann den -iSchalter von ssh verwenden, um den öffentlichen Schlüssel anzugeben, der verwendet werden soll. Ich schreibe dies, da Sie angegeben haben, dass "nicht am Standardspeicherort gespeichert". Der Standardspeicherort ist file id_dsa(für DSA-Schlüssel) in Ihrem .ssh-Verzeichnis. Dann brauchen Sie den -iSchalter nicht, um Ihren Schlüssel anzugeben, da er von dort automatisch abgeholt wird.

LGB
quelle
1

Klingt so, als hättest du die Schlüssel schon gemacht. Wenn nicht, führen Sie einfach ssh-keygen aus und akzeptieren Sie die Standardeinstellungen. Machen Sie die authorized_keys-Datei selbst:touch authorized_keys

Wenn Sie Ihre privaten Schlüssel an einem nicht standardmäßigen Ort aufbewahren, stellen Sie sicher, dass Sie -i verwenden: ssh -i /path/to/privatekey user@host

Hier ist ein guter Artikel über ssh-keygen und die Verwendung von authorized_keys, um die SSH-Anmeldung zu vereinfachen:

http://www.debuntu.org/secure-your-ssh-server-with-publicprivate-key-authentification/

djeikyb
quelle