J'ai cloné un serveur et ils ont donc la même empreinte digitale de clé RSA.
Il semble être défini dans /etc/ssh/ssh_host_rsa_key.pub
.
Quelle est la bonne façon de changer cela?
Merci.
J'ai cloné un serveur et ils ont donc la même empreinte digitale de clé RSA.
Il semble être défini dans /etc/ssh/ssh_host_rsa_key.pub
.
Quelle est la bonne façon de changer cela?
Merci.
Réponses:
Ou, retirez les clés et
ssh-keygen -A
Explication:
-A
: Pour chacun des types de clé (rsa1, rsa, dsa, ecdsa et ed25519) pour lesquels les clés d'hôte n'existent pas, générez les clés d'hôte avec le chemin du fichier de clés par défaut, une phrase de passe vide, des bits par défaut pour le type de clé et par défaut commentaire. Ceci est utilisé par / etc / rc pour générer de nouvelles clés d'hôte.
ssh-keygen -A
comme suit: "Pour chacun des types de clés (rsa1, rsa, dsa, ecdsa et ed25519) pour lesquels les clés d'hôte n'existent pas, générez l'hôte clés avec le chemin du fichier de clés par défaut, une phrase de passe vide, des bits par défaut pour le type de clé et un commentaire par défaut. Il est utilisé par / etc / rc pour générer de nouvelles clés d'hôte. "
Suivez ces étapes pour régénérer les clés d'hôte OpenSSH
rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
~/.ssh/known_hosts
fichiers des clients sshPour une méthode générique de le faire:
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -q -N "" -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
mélanger et assortir selon les clés prises en charge par votre version d'OpenSSH.
ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
Supprimez-les et redémarrez le service SSHd. Ils seront régénérés.
/etc/init.d/ssh restart<newline> Could not load host key: /etc/ssh/ssh_host_rsa_key<newline> Could not load host key: /etc/ssh/ssh_host_dsa_key<newline> [....] Restarting OpenBSD Secure Shell server: sshdCould not load host key: /etc/ssh/ssh_host_rsa_key<newline> Could not load host key: /etc/ssh/ssh_host_dsa_key
Script (au cas où le redémarrage du démon sshd ne régénère pas automatiquement les clés)
#!/bin/bash
# Regenerate SSHD key materials, restart sshd if "-r" passed on command line
set -o nounset
WHERE=/etc/ssh
# go to directory
pushd $WHERE >/dev/null
if [[ $? != 0 ]]; then
echo "Could not cd to $WHERE -- exiting" >&2
exit 1
fi
# create backup folder
NOW=`date '+%Y%m%d.%H%M%S'` # default NOW string
BAKDIR=bak_$NOW
mkdir $BAKDIR
if [[ $? != 0 ]]; then
echo "Could not mkdir $BAKDIR -- exiting" >&2
exit 1
fi
# move existing key material to backup folder
mv ssh_host_* $BAKDIR
if [[ $? != 0 ]]; then
echo "Could not move old files to $BAKDIR -- exiting" >&2
exit 1
fi
# generate new keys
ssh-keygen -A
if [[ $? != 0 ]]; then
echo "Could not recreate keys -- exiting" >&2
exit 1
fi
# ssh-keygen may create DSA keys but:
# "Never use DSA or ECDSA"
# http://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys
/bin/rm -f *_dsa_key *_dsa_key.pub
/bin/rm -f *_ecdsa_key *_ecdsa_key.pub
# on Fedora, one has to tune permissions a bit
chmod 640 *_key
chgrp ssh_keys *_key
# make sure SELinux attributes are as they should be
restorecon -R $WHERE
# Done
echo "New key material"
ls -l *_key *_key.pub
# Do the risky thing
if [[ $1 == '-r' ]]; then
echo "Restarting SSH daemon"
systemctl restart sshd
fi
# go back to where you where
popd >/dev/null