informatique:logiciels:ssh
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatique:logiciels:ssh [2019/07/23 10:23] – [Saisir un mot de passe via SSH] pteu | informatique:logiciels:ssh [2021/01/11 18:50] – [Unable to negotiate] pteu | ||
---|---|---|---|
Line 335: | Line 335: | ||
</ | </ | ||
+ | src : https:// | ||
- | src : https://stackoverflow.com/questions/10310299/proper-way-to-sudo-over-ssh | + | =====Timeout d' |
+ | |||
+ | Lorsqu' | ||
+ | |||
+ | On peut limiter ce timeout pour ne pas avoir à attendre 3 plombes qu'il nous rende la main, en utilisant l' | ||
+ | <code bash> | ||
+ | # réglage du temps maximal d' | ||
+ | ssh -o ConnectTimeout=5 serveur-down | ||
+ | </code> | ||
+ | |||
+ | Si " | ||
+ | <code bash> | ||
+ | host serveur-down | ||
+ | | ||
+ | | ||
+ | |||
+ | # limiter les essais à une seule IP | ||
+ | ssh -o ConnectionAttempts=1 serveur-down | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Connexion SSH par rebond===== | ||
+ | |||
+ | Pour se connecter à un serveur SSH cible par rebond, via un autre serveur SSH " | ||
+ | <code bash> | ||
+ | client ---> serveur_bastion ---> serveur_cible | ||
+ | </ | ||
+ | |||
+ | Il suffit de saisir l' | ||
+ | <code bash> | ||
+ | ssh -J bastion cible | ||
+ | </ | ||
+ | |||
+ | Sur de plus ancienne version de SSH on doit remplacer le -J par : | ||
+ | <code bash> | ||
+ | ssh -o ProxyCommand=" | ||
+ | </ | ||
+ | |||
+ | Et sur les plus anciennes versions de SSH on peut utiliser le trick ('' | ||
+ | <code bash> | ||
+ | ssh -tt bastion "ssh -tt cible" | ||
+ | </ | ||
+ | |||
+ | Pour automatiser cela il faut éditer, sur le poste client, le fichier de config perso ('' | ||
+ | <code bash ~/ | ||
+ | Host cible | ||
+ | | ||
+ | # nouvelle méthode | ||
+ | | ||
+ | # ou: | ||
+ | User login_sur_bastion | ||
+ | # | ||
+ | # on peut préciser le certificat à utiliser pour éviter le double prompt | ||
+ | # | ||
+ | | ||
+ | </code> | ||
+ | |||
+ | Pour éviter de saisir plusieurs fois son mot de passe, penser à copier sa clé dans les '' | ||
+ | <code bash> | ||
+ | # si pas encore fait, générer une paire de clé sur le poste client | ||
+ | client $ ssh-keygen | ||
+ | [blabla OK OK] | ||
+ | # copier la clé sur le bastion | ||
+ | client $ ssh-copy-id user@bastion | ||
+ | </ | ||
+ | |||
+ | On peut enchainer plusieurs serveurs en enfilade pour se connecter sur le serveur cible : | ||
+ | <code bash ~/ | ||
+ | Host cible | ||
+ | # on sépare les serveurs intermédiaires par une virgule | ||
+ | | ||
+ | # | ||
+ | # ou avec l' | ||
+ | | ||
+ | Host bastion2 | ||
+ | | ||
+ | </ | ||
+ | |||
+ | =====Unable | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Cependant avec certains vieux équipements, | ||
+ | <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 | ||
+ | </ | ||
+ | |||
+ | Il faut donc forcer le client SSH a accepter ces protocoles: | ||
+ | <code bash> | ||
+ | ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 upgrayedd | ||
+ | </ | ||
+ | |||
+ | ou, plus pérenne, dans le fichier de préférences du client SSH : | ||
+ | <code bash ~/ | ||
+ | Host upgrayedd | ||
+ | KexAlgorithms +diffie-hellman-group1-sha1 | ||
+ | # dans mon cas je doit aussi ajouter ça : | ||
+ | HostKeyAlgorithms +ssh-dss | ||
+ | </ | ||
+ | Il existe une page qui décrit les méthodes pour contourner les problèmes de compatibilité SSH : [[http:// | ||
+ | src: https:// | ||
====== Liens ====== | ====== Liens ====== | ||
[[http:// | [[http:// |
informatique/logiciels/ssh.txt · Last modified: 2024/04/05 06:59 by pteu