Différences entre versions de « SSH »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
(39 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
= Sous Linux =
+
= Sous Linux / MAC =
 
== Création des clés ==
 
== Création des clés ==
 
Pour créer les clés sous CentOS, il suffit d'utiliser la commande ''ssh-keygen''
 
Pour créer les clés sous CentOS, il suffit d'utiliser la commande ''ssh-keygen''
 
<pre>
 
<pre>
]# ssh-keygen
+
# ssh-keygen
 
Generating public/private rsa key pair.
 
Generating public/private rsa key pair.
 
Enter file in which to save the key (/root/.ssh/id_rsa):
 
Enter file in which to save the key (/root/.ssh/id_rsa):
Ligne 30 : Ligne 30 :
  
 
== Copie de la clé publique ==
 
== Copie de la clé publique ==
Cette étape est réalisée par la commande ''ssh-copy-id'' qui va simplement copier la clé publique de la machine sur laquelle elle est exécuté vers le fichier ''${USER}/.ssh/authorized_keys de la machine distante.
+
Cette étape est réalisée par la commande ''ssh-copy-id'' qui va simplement copier la clé publique de la machine sur laquelle elle est exécutée vers le fichier ''${USER}/.ssh/authorized_keys de la machine distante.
 
<pre>
 
<pre>
 
# ssh-copy-id -i .ssh/id_rsa.pub root@samba
 
# ssh-copy-id -i .ssh/id_rsa.pub root@samba
Ligne 55 : Ligne 55 :
 
</pre>
 
</pre>
 
Plus besoin de mot de passe ! Comme c'est agréable...
 
Plus besoin de mot de passe ! Comme c'est agréable...
 +
 +
== Limitation ==
 +
===Droits sur les fichiers===
 +
 +
Les droits du dossier utilisateur sont importants pour le fonctionnement de cette authentification.
 +
 +
Il doivent être dispensés comme ceci:
 +
* '700' pour le ~ (répertoire $HOME)
 +
* '700' pour le répertoire '~/.ssh'
 +
* '600' pour le fichier '~/.ssh/authorized_keys'
 +
 +
Ou alors il faut mettre la directive ''StrictModes'' à ''off''... Ce qui n'est peut-être pas une bonne idée !
 +
 +
===Champs "password" long à apparaître===
 +
 +
Il y a deux causes possibles :
 +
* soit la recherche inverse sur l'adresse IP du client tombe en timeout ;
 +
* soit l'authentification GSSAPI est longue.
 +
 +
Dans les deux cas, ces options se paramètrent dans le fichier ''/etc/ssh/sshd_config'' :
 +
*pour la première, il faut passer l'option ''UseDNS'' à ''no'' ;
 +
*pour la seconde, il faut passer l'option ''GSSAPIAuthentication'' à ''no''
  
 
= Sous Windows =
 
= Sous Windows =
 
== Création des clés ==
 
== Création des clés ==
Sous Winows, il faut le programme [http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe PuttyGen] pour créer notre paire de clé.
+
Sous Windows, il faut le programme [http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe PuttyGen] pour créer notre paire de clé.
{|
+
{|align=center
 
! Démarrage !! Génération des clés !! Sauvegarde
 
! Démarrage !! Génération des clés !! Sauvegarde
 
|-
 
|-
|align="center"|[[Fichier:start_puttygen.png]]
+
|align="center"|[[Fichier:start_puttygen.png|400px]]
|align="center"|[[Fichier:generate_puttygen.png]]
+
|align="center"|[[Fichier:generate_puttygen.png|400px]]
|align="center"|[[Fichier:save_puttygen.png]]  
+
|align="center"|[[Fichier:save_puttygen.png|400px]]  
 
|-
 
|-
 
|Pour commencer, cliquez sur le bouton ''Generate''
 
|Pour commencer, cliquez sur le bouton ''Generate''
Ligne 86 : Ligne 108 :
  
 
== Configuration du client SSH ==
 
== Configuration du client SSH ==
J'utilise [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe Putty] mais cela fonctionne avec d'autre clients également.
+
J'utilise [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe Putty] mais cela fonctionne avec d'autres clients également.
{|
+
{|align=center
 
! Démarrage !! Utilisation de la clé privé !! Création de la session et sauvegarde
 
! Démarrage !! Utilisation de la clé privé !! Création de la session et sauvegarde
 
|-
 
|-
|align="center"|[[Fichier:start_putty.png]]
+
|align="center"|[[Fichier:start_putty.png|400px]]
|align="center"|[[Fichier:private_key_putty.png]]
+
|align="center"|[[Fichier:private_key_putty.png|400px]]
|align="center"|[[Fichier:save_putty.png]]  
+
|align="center"|[[Fichier:save_putty.png|400px]]  
 
|-
 
|-
|Pour commencer, ouvrez Putty et descendez jusqu'au menu ''SSH'' &rarr ''Auth''
+
|Pour commencer, ouvrez Putty et descendez jusqu'au menu ''SSH'' &rarr; ''Auth''
 
|Sélectionnez la clé privée
 
|Sélectionnez la clé privée
 
|Enfin:
 
|Enfin:
Ligne 109 : Ligne 131 :
 
[root@fw ~]#
 
[root@fw ~]#
 
</pre>
 
</pre>
 +
 +
== Déport d'affichage ==
 +
=== Installation du serveur X11 ===
 +
Avant d'aller plus loin, assurez-vous d'avoir toutes les librairies nécessaires sur la machine Linux.
 +
* CentOS 6:
 +
<pre>
 +
# yum -y groupinstall 'X Window System'
 +
</pre>
 +
* CentOS 7+:
 +
<pre>
 +
# dnf -y install @base-x
 +
</pre>
 +
 +
=== Installation de Xming ou VcXSrv ===
 +
 +
Le déport d'affichage ou déport X (du nom du serveur graphique Linux ''X11'') permet de lancer une application depuis un système Linux sur un autre (Linux ou Windows).
 +
 +
Le seul problème est que Windows ne possède pas de serveur X... nous allons utiliser [https://sourceforge.net/projects/xming/files/latest/download ''Xming''] ou [https://sourceforge.net/projects/vcxsrv/files/latest/download ''VcXSrv''].
 +
 +
Pour MAC il faut télécharger [https://www.xquartz.org/ XQuartz] !
 +
 +
{| align="center" border="1" style="border-style: solid; border-width:4px; border-color:red; border-collapse:collapse"
 +
|
 +
NB 27/12/2016 : Préférez ''VcXSrv'' qui gère mieux les changements de résolution qui peuvent arriver lorsque l'on utilise un projecteur, un deuxième écran, etc...
 +
|}
 +
 +
Pour démarrer ''VcXSrv'', double cliquez sur l’icône du même nom. Vous pouvez oublier l'icône ''XLaunch'' qui permet de lancer le serveur X tout seul car Putty appellera automatiquement ''VcXSrv'' quand il en aura besoin.
 +
 +
=== Configuration de Putty ===
 +
 +
Une fois votre serveur ''Xming'' installé et démarré, il faut configurer Putty pour rediriger l'affichage de la session distante sur le serveur ''Xming'' fraichement installé. Cela se fait dans le menu ''SSH'' &rarr; ''X11''
 +
<div align=center>
 +
[[Fichier:ssh_x11.png|400px]]
 +
</div>
 +
 +
=== Démarrage de Putty ===
 +
Lors du premier démarrage de Putty (avec le forward X11) un fichier ''.Xauthority'' est créé
 +
<pre>
 +
Using username "root".
 +
root@192.168.50.111's password:
 +
Last login: Tue Jan 21 18:57:49 2014 from 192.168.50.101
 +
/usr/bin/xauth:  creating new authority file /root/.Xauthority
 +
</pre>
 +
Vous pouvez maintenant démarrer une application graphique, elle s'ouvrira sur votre bureau !
 +
 +
== Redirection de ports ==
 +
 +
La redirection de port peut servir pour accéder à des machines qui se trouve "derrière" l'extrémité du tunnel.
 +
 +
Nous allons prendre comme exemple un serveur Proxmox qui se situe derrière notre extrémité de tunnel à l'adresse sur le réseau local à l'adresse 192.168.60.228.
 +
 +
<div align=center>
 +
[[Fichier:ssh_tunnel.png]]
 +
</div>
 +
 +
Une fois votre session configurée, dirigez-vous dans le section SSH &rarr; Tunnels
 +
 +
<div align=center>
 +
[[Fichier:ssh_tunnel_section.png|400px]]
 +
</div>
 +
 +
Le tunnel "map" / "bind" un port local sur @IP_DISTANTE:PORT_DISTANT
 +
 +
Dans notre exemple, nous avons bindé le port 8006 de localhost vers le port 8006 de 192.168.60.228. Idem pour le port 5900 !
 +
 +
Maintenant, lorsque l'on lance notre navigateur à l'adresse https://127.0.0.1:8006, c'est le Proxmox distant qui répond !
 +
 +
== Utilisation du pavé numérique avec Vim ==
 +
Quand on utilise Putty et que l'on édite un fichier avec ''Vim'' il ne faut pas oublier de ne pas utiliser le pavé numérique...
 +
 +
Pour retrouver le plaisir de taper des chiffres sans appuyer sur la touche ''Maj'', voici la case à cocher:
 +
 +
[[Fichier:putty_keypad_mode.png|centré|400px]]
 +
 +
Pour que cela devienne un paramètre par défaut, n'oubliez pas de la sauvegarder dans la session ''Default''
 +
 +
[[Fichier:putty_default_session_save.png|centré|400px]]

Version actuelle datée du 20 mai 2021 à 18:27

Sous Linux / MAC

Création des clés

Pour créer les clés sous CentOS, il suffit d'utiliser la commande ssh-keygen

# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ed:94:0e:24:b4:ff:9a:09:7a:56:d7:a0:45:e9:0b:68 root@fw.tala-informatique.fr
The key's randomart image is:
+--[ RSA 2048]----+
|      .    .     |
|     . .  o      |
|      o..o       |
|      E+..+.     |
|     .  S+++     |
|        o*o .    |
|      .. .+      |
|     .o. +       |
|    .o  +        |
+-----------------+

Vous pouvez entrer un mot de passe pour crypter la clé privée, cependant, si votre objectif est de pouvoir vous connecter sans mot de passe sur d'autres machines, n'en mettez pas. Je pense que c'est un compromis entre praticité et sécurité...

Copie de la clé publique

Cette étape est réalisée par la commande ssh-copy-id qui va simplement copier la clé publique de la machine sur laquelle elle est exécutée vers le fichier ${USER}/.ssh/authorized_keys de la machine distante.

# ssh-copy-id -i .ssh/id_rsa.pub root@samba
The authenticity of host 'samba (192.168.200.252)' can't be established.
RSA key fingerprint is 4c:87:08:f7:34:31:b6:2d:66:4d:19:bd:06:b7:6d:77.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'samba,192.168.200.252' (RSA) to the list of known hosts.
root@samba's password:
Now try logging into the machine, with "ssh 'root@samba'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[root@fw ~]#

On rentre une dernière fois le mot de passe de la machine distante et la commande nous demande de vérifier le contenu du fichier .ssh/authorized_keys. C'est ce que nous allons faire !

[root@fw ~]# ssh root@samba
Last login: Mon Dec 23 01:42:26 2013
[root@samba ~]# cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA57Ak4JWW7zKbip1WPWxr4eQnaWWR0I/ ... /p9zIOqhUtjsvQXA9/bsFGhf6UqSscbQ== root@fw.tala-informatique.fr

Plus besoin de mot de passe ! Comme c'est agréable...

Limitation

Droits sur les fichiers

Les droits du dossier utilisateur sont importants pour le fonctionnement de cette authentification.

Il doivent être dispensés comme ceci:

  • '700' pour le ~ (répertoire $HOME)
  • '700' pour le répertoire '~/.ssh'
  • '600' pour le fichier '~/.ssh/authorized_keys'

Ou alors il faut mettre la directive StrictModes à off... Ce qui n'est peut-être pas une bonne idée !

Champs "password" long à apparaître

Il y a deux causes possibles :

  • soit la recherche inverse sur l'adresse IP du client tombe en timeout ;
  • soit l'authentification GSSAPI est longue.

Dans les deux cas, ces options se paramètrent dans le fichier /etc/ssh/sshd_config :

  • pour la première, il faut passer l'option UseDNS à no ;
  • pour la seconde, il faut passer l'option GSSAPIAuthentication à no

Sous Windows

Création des clés

Sous Windows, il faut le programme PuttyGen pour créer notre paire de clé.

Démarrage Génération des clés Sauvegarde
Start puttygen.png Generate puttygen.png Save puttygen.png
Pour commencer, cliquez sur le bouton Generate Ensuite il faut bouger la souris dans la zone grisée pour introduire une composante aléatoire Enfin, je vous conseille de sauvegarder les clés dans un lieu sûr de la manière suivante:
  • clé privée: id_rsa.ppk
  • clé publique: id_rsa.pub

Copie de la clé publique

Il n'y a malheureusement aucun moyen simple d'effectuer cette copie, il faut:

  • se connecter à la machine
  • éditer ou créer le cas échéant le fichier .ssh/authorized_keys
  • coller la clé publique id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAg46nmD/.../B11oLAcy+63t88Gr3VD5xGkk9FSrvbScWvcUak419K8cgfM1xkLY2GkP05JFyxec=

Copiez uniquement la clé et précisez au début le type de chiffrement (si vous n'avez rien modifié c'est ssh-rsa)

Configuration du client SSH

J'utilise Putty mais cela fonctionne avec d'autres clients également.

Démarrage Utilisation de la clé privé Création de la session et sauvegarde
Start putty.png Private key putty.png Save putty.png
Pour commencer, ouvrez Putty et descendez jusqu'au menu SSHAuth Sélectionnez la clé privée Enfin:
  • entrez le login@adresse
  • spécifiez un nom
  • cliquez sur Save
  • cliquez sur Open pour démarrer la connexion !

Plus besoin de mot de passe !

Using username "root".
Authenticating with public key "rsa-key-20131209"
Last login: Mon Dec 23 02:26:49 2013 from 192.168.100.1
[root@fw ~]#

Déport d'affichage

Installation du serveur X11

Avant d'aller plus loin, assurez-vous d'avoir toutes les librairies nécessaires sur la machine Linux.

  • CentOS 6:
# yum -y groupinstall 'X Window System'
  • CentOS 7+:
# dnf -y install @base-x

Installation de Xming ou VcXSrv

Le déport d'affichage ou déport X (du nom du serveur graphique Linux X11) permet de lancer une application depuis un système Linux sur un autre (Linux ou Windows).

Le seul problème est que Windows ne possède pas de serveur X... nous allons utiliser Xming ou VcXSrv.

Pour MAC il faut télécharger XQuartz !

NB 27/12/2016 : Préférez VcXSrv qui gère mieux les changements de résolution qui peuvent arriver lorsque l'on utilise un projecteur, un deuxième écran, etc...

Pour démarrer VcXSrv, double cliquez sur l’icône du même nom. Vous pouvez oublier l'icône XLaunch qui permet de lancer le serveur X tout seul car Putty appellera automatiquement VcXSrv quand il en aura besoin.

Configuration de Putty

Une fois votre serveur Xming installé et démarré, il faut configurer Putty pour rediriger l'affichage de la session distante sur le serveur Xming fraichement installé. Cela se fait dans le menu SSHX11

Ssh x11.png

Démarrage de Putty

Lors du premier démarrage de Putty (avec le forward X11) un fichier .Xauthority est créé

Using username "root".
root@192.168.50.111's password:
Last login: Tue Jan 21 18:57:49 2014 from 192.168.50.101
/usr/bin/xauth:  creating new authority file /root/.Xauthority

Vous pouvez maintenant démarrer une application graphique, elle s'ouvrira sur votre bureau !

Redirection de ports

La redirection de port peut servir pour accéder à des machines qui se trouve "derrière" l'extrémité du tunnel.

Nous allons prendre comme exemple un serveur Proxmox qui se situe derrière notre extrémité de tunnel à l'adresse sur le réseau local à l'adresse 192.168.60.228.

Ssh tunnel.png

Une fois votre session configurée, dirigez-vous dans le section SSH → Tunnels

Ssh tunnel section.png

Le tunnel "map" / "bind" un port local sur @IP_DISTANTE:PORT_DISTANT

Dans notre exemple, nous avons bindé le port 8006 de localhost vers le port 8006 de 192.168.60.228. Idem pour le port 5900 !

Maintenant, lorsque l'on lance notre navigateur à l'adresse https://127.0.0.1:8006, c'est le Proxmox distant qui répond !

Utilisation du pavé numérique avec Vim

Quand on utilise Putty et que l'on édite un fichier avec Vim il ne faut pas oublier de ne pas utiliser le pavé numérique...

Pour retrouver le plaisir de taper des chiffres sans appuyer sur la touche Maj, voici la case à cocher:

Putty keypad mode.png

Pour que cela devienne un paramètre par défaut, n'oubliez pas de la sauvegarder dans la session Default

Putty default session save.png