web-dev-qa-db-fra.com

Comment remplacer la paire de clés ssh privé-public?

Si je sens que ma ssh d'origine a été compromise, parce que quelqu'un a la phrase secrète, dois-je remplacer la paire de clés privée et publique ou ne modifier que la phrase secrète? Laquelle est la solution et comment puis-je la faire?

merci

1
pileup

Si vous savez que quelqu'un a la phrase secrète, il a probablement utilisé votre clé ssh. Si tel est le cas, vous ne pourrez probablement pas savoir si cette personne a copié votre clé SSH ou non. Si cette personne a une copie de votre clé et que vous modifiez la phrase secrète de votre clé, celle-ci utilise toujours l'ancienne phrase secrète et est donc utilisable par cette personne. Donc, pour être sûr, je vous recommande de remplacer votre clé ssh.

Vous pouvez générer une nouvelle clé en exécutant

ssh-keygen -f ~/.ssh/new-key

Cela créera une nouvelle clé ssh dans ~/.ssh/new-key.

N'oubliez pas de créer non seulement une nouvelle clé, mais également de supprimer votre ancienne clé de toutes les machines qui en sont équipées.

Mise à jour: Pour ce faire, commencez par dresser une liste de toutes les machines auxquelles vous pouvez accéder avec cette clé ssh. Ensuite, pour chacune de ces machines, procédez comme suit:

user@local:~$ ssh someuser@somemachine
someuser@somemachine:~$ nano .ssh/authorized_keys

Editez ce fichier et procédez comme suit:

  1. supprimez la ligne contenant votre ancienne clé SSH. S'il n'y a qu'une seule ligne qui est facile, sinon, cherchez une ligne qui se termine par les mêmes lettres cryptées que votre ancienne clé publique. Vous pouvez voir votre ancienne clé publique en exécutant cat ~/.ssh/id_rsa.pub sur votre machine locale (en supposant que votre ancienne clé est id_rsa, sinon vous devez ajuster la commande). Pour supprimer une ligne dans nano, appuyez simplement sur Ctrl+K.
  2. ajoutez votre nouvelle clé publique à ce fichier. Vous trouvez la nouvelle clé publique sur votre machine locale en utilisant cat ~/.ssh/new-key.pub. Copiez la ligne entière textuellement dans le fichier en une seule ligne.
  3. Enregistrez le fichier en appuyant sur Ctrl+OEnter et Ctrl+X pour quitter nano.

Puis testez si vous pouvez accéder à la machine avec votre nouvelle clé sans fermer la connexion existante (vous êtes donc toujours connecté en cas de problème).

user@local:~$ ssh -i ~/.ssh/new-key someuser@somemachine

Si cela fonctionne et que vous êtes connecté à la machine distante, vous avez correctement remplacé votre clé ssh sur cette machine. Continuez maintenant avec la machine suivante. Répéter jusqu'à la fin.

Vous pourrez peut-être automatiser un peu ce processus:

ssh-copy-id -i ~/.ssh/new-key.pub someuser@somemachine
ssh -i ~/.ssh/new-key someuser@somemachine "sed -i.bak 's/$(cut -f2 ~/.ssh/id_rsa.pub | sed 's~/~\\/~g')/d' ~/.ssh/authorized_keys"

Mais je ne garantis pas que cela fonctionnera et ne vous isolera pas de certaines machines. À utiliser à vos risques et périls!

Son utilisation consiste à utiliser ssh-copy-id pour copier votre nouvelle clé et à utiliser sed pour supprimer votre ancienne clé du fichier authorized_keys. $(cut -f2 ~/.ssh/id_rsa.pub | sed 's~/~\\/~g') ajoute votre ancienne clé publique à la commande afin qu'elle puisse la rechercher et veille à éviter les barres obliques. /some-string/d supprime toutes les lignes correspondant à la chaîne (dans notre cas, votre ancienne clé) du fichier.

Ne le faites que si vous avez beaucoup de machines pour changer votre clé et la tester d’abord sur une machine à laquelle vous avez un accès physique ou un autre moyen de restaurer l’accès en cas de problème. Fin de la mise à jour

Après avoir remplacé votre ancienne clé, vous pouvez renommer ~/.ssh/id_rsa pour que ssh la trouve automatiquement. Vous voudrez peut-être conserver une copie de votre ancienne clé au cas où vous auriez oublié un système auquel vous n'auriez autrement plus accès.

Mise à jour: Pour ce faire, exécutez simplement:

cd ~/.ssh
mv id_rsa id_rsa_old
mv id_rsa.pub id_rsa_old.pub
mv new-key id_rsa
mv new-key.pub id_rsa.pub

Si vous devez utiliser votre ancienne clé pour quelque chose à nouveau, vous pouvez utiliser ssh -i ~/.ssh/id_rsa_old pour l'utiliser. N'oubliez pas d'ajouter votre nouvelle clé à cette machine et de supprimer l'ancienne clé.

1
Lienhart Woitok