Outils pour utilisateurs

Outils du site


linux:ssh (lu 49740 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:ssh [10-06-2025 12:50] edmc73linux:ssh [06-05-2026 17:12] (Version actuelle) – [autossh : créer une connexion persistante] edmc73
Ligne 181: Ligne 181:
   ssh -J titi@MACHINE tutu@serveur   ssh -J titi@MACHINE tutu@serveur
  
-Il conviendra de copier toutes les clés un peu partout+ 
 +<code> 
 +    ssh       ssh 
 +A ------> B ------> C 
 +    ^          ^ 
 + using A'  using A's 
 +   key         key 
 +</code> 
 + 
 +ProxyJump utilise la clé local (A) pour se connecter à (B) puis utilise cette même clé (A) pour se connecter à (C) même si (B) n'a pas de clé pour se connecter directement à (C), ça fonctionne quand même. 
  
 On peut aussi écrire tout ça dans le fichier de config ssh On peut aussi écrire tout ça dans le fichier de config ssh
Ligne 199: Ligne 209:
   User root   User root
   IdentityFile ~/.ssh/id_rsa.pub   IdentityFile ~/.ssh/id_rsa.pub
-  ProxyJump rrot@serveurIntermédiaire +  ProxyJump root@serveurIntermédiaire 
-  PubkeyAcceptedKeyTypes=°ssh-dss,ssh-rsa+  PubkeyAcceptedKeyTypes=+ssh-dss,ssh-rsa
   HostKeyAlgorithms=+ssh-dss,ssh-rsa   HostKeyAlgorithms=+ssh-dss,ssh-rsa
  
Ligne 425: Ligne 435:
 ===== autossh : créer une connexion persistante ===== ===== autossh : créer une connexion persistante =====
  
-**autossh** permet de lancer une commande ssh puis de la relancer en cas d'échec. +Voir la page dédié [[autossh|]]
- +
-Installer **autossh** +
-  apt-get install autossh +
- +
- +
-Comme le dit le **man autossh** il est préférable d'utiliser les options **ServerAliveInternal** et **ServerAliveCountMax** plutôt que d'utiliser le echo port pour le monitoring, je vais donc écrire les commandes dans ce contexte. +
- +
-Exemple: J'ai besoin d'un accès à une base de données distante en local +
- +
-La commande ssh serait +
-  ssh -L 3307:localhost:3306 username@toto-public.com +
- +
-La commande autossh serait +
-  autossh -M 0 -q -f -N -oServerAliveInterval=60 -oServerAliveCountMax=3 -L 3307:localhost:3306 username@toto-public.com +
- +
-Pour que cette connexion se lance au démarrage de la machine, placer cette commande dans le fichier **/etc/rc.local**+
  
 ===== Gérer plusieurs clés ===== ===== Gérer plusieurs clés =====
Ligne 484: Ligne 478:
 La solution est de rajouter une option dans votre ligne de commande La solution est de rajouter une option dans votre ligne de commande
   ssh 192.168.0.1 -oHostKeyAlgorithms=+ssh-rsa   ssh 192.168.0.1 -oHostKeyAlgorithms=+ssh-rsa
 +
 +Dans le fichier .ssh/config vous pouvez aussi mettre ça
 +
 +Le **KexAlgorithms** n'est à ajouter seulement si l'erreur suivante apparait
 +  Unable to negotiate with 192.168.0.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
 +
 +
 +<code>
 +Host serveur
 +  Hostname serveur
 +  User root
 +  IdentityFile ~/.ssh/id_rsa
 +  #Legacy changes
 +  KexAlgorithms +diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
 +  HostKeyAlgorithms=+ssh-rsa
 +  PubkeyAcceptedAlgorithms=+ssh-rsa
 +</code>
 +
 +Et à contrario, si une vieille machine veut se connecter sur un serveur ssh récent et que dans les logs du serveur on a ça
 +  userauth_pubkey: signature algorithm ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
 +
 +On peut créer une règle pour autoriser ce vieux protocol seulement pour une ip et un user
 +  vi /etc/ssh/sshd_config.d/ma_regle.conf
 +
 +<code>
 +Match Host 9.ip_du_vieux_serveur.1.1.1 User edmc
 +  PubkeyAcceptedAlgorithms=+ssh-rsa
 +</code>
 +
 +
 +
 +
 +
 +===== Connexion SSH vers vieux serveurs (OpenSSL 3.5+) =====
 +
 +L'erreur ''ssh_dispatch_run_fatal: error in libcrypto'' survient car les distributions récentes (Fedora/RHEL) bloquent les signatures SHA-1 au niveau d'OpenSSL, même si SSH les autorise.
 +
 +==== 1. Création du module de politique crypto ====
 +Créer un fichier pour autoriser spécifiquement les signatures SHA-1 dans la bibliothèque crypto :
 +
 +Fichier : ''/etc/crypto-policies/policies/modules/SHA1-SSL-SIG.pmod''
 +
 +Contenu :
 +
 +<file>
 +#Unblock openssl sha1 signatures for ssh
 +__openssl_block_sha1_signatures = 0
 +</file>
 +
 +==== 2. Application de la politique ====
 +Appliquer la modification sans affaiblir tout le système (maintien du mode DEFAULT) :
 +
 +Commande : 
 +  sudo update-crypto-policies --set DEFAULT:SHA1-SSL-SIG
 +
 +Vérification (doit afficher ''DEFAULT:SHA1-SSL-SIG'') : 
 +  update-crypto-policies --show 
 +
 +==== 3. Configuration Client SSH ====
 +Ajouter l'exception pour l'IP du serveur dans ''~/.ssh/config'' :
 +<file>
 +Host 192.168.0.3
 +    HostName 192.168.0.3
 +    HostKeyAlgorithms +ssh-rsa
 +    PubkeyAcceptedAlgorithms +ssh-rsa
 +</file>
 +
 +Note : Cette méthode est plus sécurisée que le mode ''LEGACY'' global car elle cible précisément le verrou OpenSSL.
  
linux/ssh.1749559821.txt.gz · Dernière modification : de edmc73