Comment générer un fichier openssl .pem et où nous devons le placer

13

Je veux générer un .pemfichier OpenSSL pour permettre la connexion à distance via ssh en utilisant le .pemfichier à la place du mot de passe.

Je peux générer des clés .crtet des .pemfichiers en utilisant les éléments suivants

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

Mais le problème est que là où je dois le mettre côté serveur ou quels changements je dois faire dans le /etc/ssh/sshd_configfichier pour permettre la connexion à distance via ssh en utilisant le .pemfichier.

Je veux que ce client connecte ma machine de la manière suivante.

ssh -i server_crt.pem username@my_ip

Quels changements exactement je dois apporter à la mise en œuvre.

Merci

Farman Ali
la source

Réponses:

18

Vous devez d'abord télécharger la clé publique sur le serveur auquel vous souhaitez vous connecter, la clé publique se trouve dans le fichier .pub:

Exemple:

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

Après cela, cela devrait fonctionner et vous devriez pouvoir vous connecter en utilisant:

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

Les modifications sont effectuées dans le fichier ~ / .ssh / authorized_keys sur la machine serveur, ouvert avec un éditeur de texte tel que nano, vous verrez des lignes commençant par quelque chose comme: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAX ...

Personnellement, je génère le fichier de clé à l'aide de $ ssh-keygen -t rsa -b 2048 -v, qui génère le fichier .pem et pub. Quand on vous demande:

Entrez le fichier dans lequel enregistrer la clé (/home/user/.ssh/id_rsa):

entrez le nom du fichier .pem par exemple: my-certificate.pem

Étape par étape de la génération de la clé à la connexion:

  1. Générez la clé avec $ ssh-keygen -t rsa -b 2048 -vet lorsque vous êtes invité à entrer le fichier dans lequel enregistrer la clé, tapez my-certificateet lorsque vous êtes invité à saisir la phrase secrète, appuyez sur Entrée (phrase secrète vide) et confirmez par Entrée.
  2. Vous obtiendrez deux fichiers générés, l'un sera my-certificate et l'autre sera my-certificate.pub, renommez my-certificate en my-certificate.pem, vous aurez donc deux fichiers, my-certificate.pub et my- certificate.pem
  3. Téléchargez le certificat public sur le serveur: ssh-copy-id -i ~/my-certificate.pub username@ip
  4. Rendre le fichier .pem sur votre ordinateur en lecture seule sudo chmod 400 my-certificate.pem
  5. Connectez-vous avec $ sudo ssh -i /path/to/my-certificate.pem user@ip
Mike
la source
1
Après tout, je reçois l'erreur «Autorisation refusée (publickey)» et je ne parviens pas à me connecter
Farman Ali
Bonjour, pour des raisons de sécurité, votre fichier .pem ne doit pas être accessible en écriture, utilisez sudo chmod 400 my-certificate.pem sur votre machine et réessayez.
Mike
Salut, je l'avais changé en 400. Mais le problème reste le même. Pourriez-vous s'il vous plaît expliquer tout le travail étape par étape, de la génération d'une clé à la connexion à partir du client.
Farman Ali
Le changement de nom doit être fait après ssh-copy-id car il recherche le fichier my-certificate
coolscitist