Wie wird eine Openssl .pem-Datei erzeugt und wo muss sie abgelegt werden?

13

Ich möchte eine OpenSSL- .pemDatei generieren , um die Remote-Anmeldung über ssh mithilfe der .pemDatei an der Stelle des Kennworts zu ermöglichen.

Ich bin in der Lage Schlüssel zu generieren sowie .crtund .pemDatei der folgende Verwendung

sudo openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

Aber das Problem ist, dass ich es auf dem Server ablegen muss oder welche Änderungen ich in der /etc/ssh/sshd_configDatei vornehmen muss, um die Remote-Anmeldung über ssh mit .pemfile zu ermöglichen.

Ich möchte, dass dieser Client meinen Computer auf folgende Weise verbindet.

ssh -i server_crt.pem username@my_ip

Welche Änderungen genau muss ich für die Umsetzung vornehmen.

Vielen Dank

Farman Ali
quelle

Antworten:

18

Zuerst müssen Sie den öffentlichen Schlüssel auf den Server hochladen, zu dem Sie eine Verbindung herstellen möchten. Der öffentliche Schlüssel befindet sich in der PUB-Datei:

Beispiel:

# ssh-copy-id -i ~/my-certificate.pub [email protected]

Danach sollte es funktionieren und Sie sollten sich anmelden können mit:

$ sudo ssh -i ~/my-certificate.pem [email protected]

Änderungen werden in der Datei ~ / .ssh / authorized_keys auf dem Servercomputer vorgenommen, die mit einem Texteditor wie nano geöffnet wird. Die Zeilen beginnen mit: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAX ...

Ich persönlich generiere die Schlüsseldatei mit $ ssh-keygen -t rsa -b 2048 -v, wodurch die .pem- und die pub-Datei generiert werden. Wenn Sie gefragt werden:

Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/user/.ssh/id_rsa):

Geben Sie den Namen der PEM-Datei ein, zum Beispiel: my-certificate.pem

Schritt für Schritt vom Generieren des Schlüssels bis zur Anmeldung:

  1. Generieren Sie den Schlüssel mit $ ssh-keygen -t rsa -b 2048 -vund geben Sie bei Aufforderung die Datei ein, in der der Schlüssel gespeichert werden soll. my-certificateGeben Sie bei Aufforderung die Passphrase ein, drücken Sie die Eingabetaste (leere Passphrase) und bestätigen Sie mit der Eingabetaste.
  2. Sie erhalten zwei generierte Dateien, eine ist mein-Zertifikat und eine ist mein-Zertifikat.pub. Benennen Sie das meine-Zertifikat in mein-Zertifikat.pem um, sodass Sie zwei Dateien haben, mein-Zertifikat.pub und mein-Zertifikat. certificate.pem
  3. Laden Sie das öffentliche Zertifikat auf den Server hoch: ssh-copy-id -i ~/my-certificate.pub username@ip
  4. Erstellen Sie die PEM-Datei auf Ihrem Computer als schreibgeschützt sudo chmod 400 my-certificate.pem
  5. Einloggen mit $ sudo ssh -i /path/to/my-certificate.pem user@ip
Mike
quelle
1
Immerhin bekomme ich den Fehler "Permission denied (publickey)" und ich kann keine Verbindung herstellen
Farman Ali
Hallo, aus Sicherheitsgründen sollte Ihre .pem-Datei nicht beschreibbar sein. Verwenden Sie sudo chmod 400 my-certificate.pem auf Ihrem Computer und versuchen Sie es erneut.
Mike
Hallo, ich hatte es auf 400 geändert. Aber das Problem bleibt gleich. Erklären Sie uns bitte Schritt für Schritt die gesamte Arbeitsweise von der Erstellung eines Schlüssels bis zur Verbindung mit dem Client.
Farman Ali
Die Umbenennung sollte nach ssh-copy-id erfolgen, da nach meiner Zertifikatsdatei
gesucht wird