User Tools

Site Tools


informatique:logiciels:ssh

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:logiciels:ssh [2020/03/30 09:59] – [Connexion SSH par rebond] pteuinformatique:logiciels:ssh [2021/01/11 18:50] – [Unable to negotiate] pteu
Line 366: Line 366:
 </code> </code>
  
-Il faut éditer, sur le poste client, le fichier de config perso (''~/.ssh/config'') :+Il suffit de saisir l'option ''-J''
 +<code bash> 
 +ssh -J bastion cible 
 +</code> 
 + 
 +Sur de plus ancienne version de SSH on doit remplacer le -J par : 
 +<code bash> 
 +ssh -o ProxyCommand="ssh -W %h:%p bastion" cible 
 +</code> 
 + 
 +Et sur les plus anciennes versions de SSH on peut utiliser le trick (''-tt'' force l'allocation d'un terminal) : 
 +<code bash> 
 +ssh -tt bastion "ssh -tt cible" 
 +</code> 
 + 
 +Pour automatiser cela il faut éditer, sur le poste client, le fichier de config perso (''~/.ssh/config'') :
 <code bash ~/.ssh/config> <code bash ~/.ssh/config>
-Host serveur_cible +Host cible 
-   ProxyCommand ssh serveur_bastion -W %h:22 +   Hostname cible.domain.com 
-   User mon_login_sur_serveur +# nouvelle méthode 
-   #alternative : ProxyCommand ssh serveur_bastion nc %h 22+   ProxyJump bastion 
 +# ou:   ProxyCommand ssh bastion -W %h:%p 
 +   User login_sur_bastion 
 +   #alternative : ProxyCommand ssh bastion nc %h 22
    # on peut préciser le certificat à utiliser pour éviter le double prompt    # on peut préciser le certificat à utiliser pour éviter le double prompt
    #IdentityFile ~/.ssh/id_rsa.pub    # préciser la clé à utiliser, si pas celle par défaut    #IdentityFile ~/.ssh/id_rsa.pub    # préciser la clé à utiliser, si pas celle par défaut
    ForwardAgent yes                   # utiliser les credentials locaux sur les systèmes distants    ForwardAgent yes                   # utiliser les credentials locaux sur les systèmes distants
 </code> </code>
 +
 Pour éviter de saisir plusieurs fois son mot de passe, penser à copier sa clé dans les ''authorized_keys'' du serveur bastion avec la commande : Pour éviter de saisir plusieurs fois son mot de passe, penser à copier sa clé dans les ''authorized_keys'' du serveur bastion avec la commande :
 <code bash> <code bash>
Line 381: Line 400:
 client $ ssh-keygen client $ ssh-keygen
 [blabla OK OK] [blabla OK OK]
-# copier la clé sur le serveur +# copier la clé sur le bastion 
-client $ ssh-copy-id user@serveur_bastion+client $ ssh-copy-id user@bastion
 </code> </code>
  
 On peut enchainer plusieurs serveurs en enfilade pour se connecter sur le serveur cible : On peut enchainer plusieurs serveurs en enfilade pour se connecter sur le serveur cible :
 <code bash ~/.ssh/config> <code bash ~/.ssh/config>
-Host serveur_bastion2 +Host cible 
-   ProxyCommand ssh serveur_bastion -W %h:22 +# on sépare les serveurs intermédiaires par une virgule 
-Host serveur_cible +   ProxyJump bastion,bastion2 
-   ProxyCommand ssh serveur_bastion2 -W %h:22+
 +# ou avec l'option -W : 
 +   ProxyCommand ssh bastion2 -W %h:%p 
 +Host bastion2 
 +   ProxyCommand ssh bastion -W %h:%p
 </code> </code>
 +
 +=====Unable to negotiate...=====
 +
 +Certains clients récents ne sont plus compatibles avec les paramètres négociés avec les serveurs trop vieux (ou inversement...). En effet les anciennes versions sont vulnérables à différentes failles de sécurité. C'est donc une bonne chose de désactiver par défaut la possibilité d'établir une connexion SSH si elle n'est pas sûre.
 +
 +Cependant avec certains vieux équipements, c'est soit vieux SSH soit telnet. Dans mon cas :
 +<code bash>
 +ssh admin@upgrayedd
 +Unable to negotiate with 10.0.2.240 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
 +</code>
 +
 +Il faut donc forcer le client SSH a accepter ces protocoles:
 +<code bash>
 +ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 upgrayedd
 +</code>
 +
 +ou, plus pérenne, dans le fichier de préférences du client SSH :
 +<code bash ~/.ssh/config>
 +Host upgrayedd
 +  KexAlgorithms +diffie-hellman-group1-sha1
 +  # dans mon cas je doit aussi ajouter ça :
 +  HostKeyAlgorithms +ssh-dss
 +</code>
 +Il existe une page qui décrit les méthodes pour contourner les problèmes de compatibilité SSH : [[http://www.openssh.com/legacy.html|SSH legacy options]]
 +
 +src: https://unix.stackexchange.com/questions/340844/how-to-enable-diffie-hellman-group1-sha1-key-exchange-on-debian-8-0/340853
 ====== Liens ====== ====== Liens ======
  
 [[http://people.via.ecp.fr/~alexis/formation-linux/export-display.html|formation Linux]] [[http://people.via.ecp.fr/~alexis/formation-linux/export-display.html|formation Linux]]
informatique/logiciels/ssh.txt · Last modified: 2024/04/05 06:59 by pteu