Outils pour utilisateurs

Outils du site


linux:ssh (lu 25691 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 [24-10-2018 20:51] – [Partager un répertoire distant via SSH] edmc73linux:ssh [06-10-2025 20:45] (Version actuelle) – [Clé DSA non supportée] edmc73
Ligne 170: Ligne 170:
  
 Encore plus d'explication => http://fr.openclassrooms.com/informatique/cours/mise-en-place-d-un-tunnel-tcp-ip-via-ssh Encore plus d'explication => http://fr.openclassrooms.com/informatique/cours/mise-en-place-d-un-tunnel-tcp-ip-via-ssh
 +
 +===== Se connecter par rebond =====
 +
 +Si vous avez besoin d'une connexion ssh à une machine accessible uniquement par une autre machine et que vous n'avez pas envie de vous connecter deux fois comme par exemple
 +  toto@mamachine# ssh titi@MACHINE
 +  titi@MACHINE# ssh tutu@serveur
 +
 +Utilisons ProxyJump
 +
 +  ssh -J titi@MACHINE tutu@serveur
 +
 +
 +<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
 +
 +<code>
 +Host serveur
 +  HostName serveur
 +  User tutu
 +  IdentityFile ~/.ssh/id_ed25519
 +  ProxyJump titi@MACHINE
 +
 +
 +# exemple pour un vieux serveur
 +
 +Host vieuxserveur
 +  HostName vieuxserveur
 +  User root
 +  IdentityFile ~/.ssh/id_rsa.pub
 +  ProxyJump root@serveurIntermédiaire
 +  PubkeyAcceptedKeyTypes=+ssh-dss,ssh-rsa
 +  HostKeyAlgorithms=+ssh-dss,ssh-rsa
 +
 +</code>
 +
 +
 +
 +===== Reverse ssh =====
 +
 +Mon serveur **toto-public.com** voudrait se connecter à **monpc.local** or celui-ci est derrière un pare-feu ou un réseau local inaccessible mais il a quand même accès au web et donc à **toto-public.com**.
 +
 +
 +Sur **monpc.local**, lancez la commande suivante
 +  ssh -NR 2200:localhost:22 user@toto-public.com
 +
 +L'option ''-N'' spécifie qu'on se loggue que pour du forward, pas possible de taper des commandes
 +
 +L'option ''-R'' pour Remote: port_local_du_serveur_distant:ip_local_du_serveur_distant:port_local_du_serveur_local (le port 2200 est un exemple)
 +
 +Une fois connecté, allons sur notre serveur **toto-public.com** et lancez la commande suivante pour vous connecter à **monpc.local**
 +
 +  ssh -p 2200 user@localhost
  
 ===== Partager un répertoire distant via SSH ===== ===== Partager un répertoire distant via SSH =====
Ligne 219: Ligne 281:
 </code> </code>
  
-Pour chrooter toto, son répertoire home doit appartenir à root+Pour chrooter toto, son répertoire home doit appartenir à root et être en 755
 <code>cd /home <code>cd /home
 ls -l ls -l
Ligne 225: Ligne 287:
  
 chown root toto chown root toto
 +chmod 755 toto
 ls -l ls -l
 drwxr-xr-x  2 root    toto                4096 16 janv. 08:44 toto</code> drwxr-xr-x  2 root    toto                4096 16 janv. 08:44 toto</code>
Ligne 247: Ligne 310:
 </code> </code>
  
 +exemple d'utilisation de sftp
 +<code>
 +Download a single file from a remote ftp server to your machine:
  
 +sftp {user}@{host}:{remoteFileName} {localFileName}
 +
 +Upload a single file from your machine to a remote ftp server:
 +
 +sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
 +</code>
 ===== Chrooter les utilisateurs en SSH ===== ===== Chrooter les utilisateurs en SSH =====
 --- source: https://debian-facile.org/viewtopic.php?id=9607  https://linuxfr.org/forums/linux-debian-ubuntu/posts/cloisonner-utilisateur-ssh-debian-8-resolu --- source: https://debian-facile.org/viewtopic.php?id=9607  https://linuxfr.org/forums/linux-debian-ubuntu/posts/cloisonner-utilisateur-ssh-debian-8-resolu
Ligne 408: Ligne 480:
 The solution is to add the following line to ~/.ssh/config on every client machine (every machine where you run the SSH client): The solution is to add the following line to ~/.ssh/config on every client machine (every machine where you run the SSH client):
  
-  PubkeyAcceptedKeyTypes=+ssh-dss+  HostKeyAlgorithms=+ssh-dss
  
 If the server is using OpenSSH 7.0 or newer, you'll also need to add this line to /etc/ssh/sshd_config on each server machine. If the server is using OpenSSH 7.0 or newer, you'll also need to add this line to /etc/ssh/sshd_config on each server machine.
Ligne 415: Ligne 487:
  
  
 +----------
 +
 +Si on essaie de se connecter sur un vieux serveur, on obtient le message d'erreur
 +  Unable to negotiate with 192.168.0.1 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
 +
 +La solution est de rajouter une option dans votre ligne de commande
 +  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>
linux/ssh.1540414285.txt.gz · Dernière modification : de edmc73