Skip to content

Connection SSH

Modification du fichier de connexion SSH

Vous pouvez spécifier un utilisateur dans votre fichier ssh.config en ajoutant le mot-clé "Utilisateur" suivi du nom d'utilisateur. Voici un exemple:

Host example.com
  User username
  Port 22
  IdentityFile .ssh/privatekey.pem

Connexion via le domain

ssh domain\utilisateur@nomduserveur.domain.xx

Linux connexion avec sa clé publique

Pré-configuration

avoir un client ssh et créer la clée :

ssh-keygen

Se connecter si le mot de passe est activé

ssh-copy-id 192.168.1.210 -p 45293
ssh 192.168.1.210 -p 45293

on peut maintenant se connecter a 192.168.1.210 sans mot de passse

Se connecter si le mot de passe est désactiver

Dans se scénario nous allons nous connecter sur un serveur qui accepte uniquement l'authtification par clé publique.

Se connecter avec l'utilisateur par default et crée l'utilisateur avec lesque ont souhaite se connecter :

adduser user
usermod -aG sudo
tee -a /home/user/.ssh/authorized_keys  >/dev/null <<'EOF'
ssh-rsa mettrelaclépublicici
EOF

On va ensuite pouvoir se connecter avec le bon compte et supprimer le compte par default

Résolution du problème de persmission

Si l'erreur suivante se présente : Permissions are too open pour le dossier .ssh alors il faut utiliser la commande suivante :

sudo chmod 700 .ssh
sudo chmod 600 .ssh/id_rsa.pub
sudo chmod 600 .ssh/id_rsa
sudo chmod 600 .ssh/authorized_keys
Source : Howtogekk

Windows connexion avec sa clé public

Instalation du client OpenSSH

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Pré-configuration

Dans powershell :

ssh-keygen
gsudo choco install gsudo ssh-copy-id
ssh-copy-id 192.168.1.201

Problème de permission

Si des problème de permission surviennent bien vérifier :

  • Qu'il n'y a pas d'érithage sur le dossier
  • Qui est le propriétaire

capture_d'écran_2024-09-24_120525.png

Voici a quoi doit ressemblé les perms

Utilisation avancé

Serveur de rebond SSH

Utilisation de base

ssh -J utilisateur@serveur-de-rebond utilisateur@serveur-cible
ou avec l'option -i pour spécifier la clé SSH :

ssh -i /chemin/vers/votre/clé_privée -J utilisateur@serveur-de-rebond utilisateur@serveur-cible
ou en utilisant le fichier de configuration SSH (~/.ssh/config) :

Host serveur-cible
  HostName serveur-cible
  User utilisateur
  ProxyJump utilisateur@serveur-de-rebond
  IdentityFile /chemin/vers/votre/clé_privée

Puis simplement :

ssh serveur-cible

On peut aussi forward la clée ssh via cette commande :

ssh -A -i /chemin/vers/votre/clé_privée -J utilisateur@serveur-de-rebond utilisateur@serveur-cible

Utilisation plus avancé

On peut utilisé des expression régulière pour avoir moin de gestion de conf à faire :

Host *.domaine.fr !dcadm-inf-ssh1.domaine.fr
    ProxyJump username@dcadm-inf-ssh1.domaine.fr
    User username
    ServerAliveInterval 60
    ForwardAgent yes

Warning

pour évité une boucle on rajoute le ProxyJump après le "!" de Host

redirection de port SSH

Redirige un port local de votre machine vers un port sur une machine distante :

ssh -L 8080:localhost:80 utilisateur@serveurdistant
Dans cet exemple, tout le trafic envoyé au port 8080 sur votre machine locale sera redirigé vers le port 80 sur serveurdistant

Redirige un port sur le serveur SSH distant vers un port sur votre machine locale

ssh -R 8080:localhost:80 utilisateur@serveurdistant
Ici, tout le trafic envoyé au port 8080 sur serveurdistant sera redirigé vers le port 80 sur votre machine locale.

Proxy SOCKS sur votre machine locale, permettant d'accéder à plusieurs services sur le serveur distant

ssh -D 8080 utilisateur@serveurdistant
Vous pouvez ensuite configurer votre navigateur ou une autre application pour utiliser un proxy SOCKS sur localhost:8080, ce qui permet d'accéder à Internet à travers serveurdistant.