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
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:
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.cat ~/.ssh/new-key.pub
. Copiez la ligne entière textuellement dans le fichier en une seule ligne.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é.