FAQ:SSH RSA1
Explications
Si vous utilisez un Linux "récent" pour le point central, vous risquez d'avoir des problèmes de clés ssh pour vous connecter à des OS plus anciens.
Cela vient du fait que ssh ne supporte plus les clés de type RSA1.
Exemple de cas :
ssh oracle@myoraclehost
Pseudo-terminal will not be allocated because stdin is not a terminal. Unable to negotiate with 10.201.666.130 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(228) [sender=3.2.3] Fail to 'rsync -aHv --delete -e "ssh -o BatchMode=yes -o StrictHostKeyChecking=no" /home/dbsqware/dbSQWare/SQWareProduction/oracle oracle@myoraclehost:~/SQWareProduction/.' !
Configuration
3 étapes :
- Préparation d'un fichier de surcharge ssl (~/.ssh/openssl.cnf)
- Ajout d'une variable d'environnement pour pointer vers ce fichier (OPENSSL_CONF)
- Ajout des surchrges pour certains hosts (~/.ssh/config)
~/.ssh/openssl.cnf)
On accepte les signatures sha1 dans la conf ssl.
cat << EOFCAT >> ~/.ssh/openssl.cnf
.include /etc/ssl/openssl.cnf
[openssl_init]
alg_section = evp_properties
[evp_properties]
rh-allow-sha1-signatures = yes
EOFCAT
OPENSSL_CONF
Variable d'environnement pour la conf ssl surchargée.
cat << EOFCAT >> ~/.bashrc
export OPENSSL_CONF=~/.ssh/openssl.cnf
EOFCAT
~/.ssh/config
Mettez les noms de vos hosts à la place de "myoraclehost" ...
cat << EOFCAT >> ~/.ssh/config
# CentOS release 5 + RedHat release 5 + CentOS release 6 + RedHat release 6
Host <span style="color: red">myoraclehost</span>
KexAlgorithms +diffie-hellman-group14-sha1
MACs +hmac-sha1
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
EOFCAT