Différences entre versions de « SSH »
(28 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 | |
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 57 : | Ligne 57 : | ||
== Limitation == | == Limitation == | ||
+ | ===Droits sur les fichiers=== | ||
Les droits du dossier utilisateur sont importants pour le fonctionnement de cette authentification. | Les droits du dossier utilisateur sont importants pour le fonctionnement de cette authentification. | ||
Ligne 62 : | Ligne 63 : | ||
Il doivent être dispensés comme ceci: | Il doivent être dispensés comme ceci: | ||
* '700' pour le ~ (répertoire $HOME) | * '700' pour le ~ (répertoire $HOME) | ||
− | * ' | + | * '700' pour le répertoire '~/.ssh' |
* '600' pour le fichier '~/.ssh/authorized_keys' | * '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 Windows, 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 96 : | Ligne 109 : | ||
== 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'autres 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'' → ''Auth'' | |Pour commencer, ouvrez Putty et descendez jusqu'au menu ''SSH'' → ''Auth'' | ||
Ligne 120 : | Ligne 133 : | ||
== Déport d'affichage == | == Déport d'affichage == | ||
− | + | === Installation du serveur X11 === | |
− | == Installation du serveur X11 == | ||
− | |||
Avant d'aller plus loin, assurez-vous d'avoir toutes les librairies nécessaires sur la machine Linux. | Avant d'aller plus loin, assurez-vous d'avoir toutes les librairies nécessaires sur la machine Linux. | ||
− | + | * CentOS 6: | |
<pre> | <pre> | ||
# yum -y groupinstall 'X Window System' | # yum -y groupinstall 'X Window System' | ||
</pre> | </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 | + | 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'' → ''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éé | Lors du premier démarrage de Putty (avec le forward X11) un fichier ''.Xauthority'' est créé | ||
− | |||
<pre> | <pre> | ||
Using username "root". | Using username "root". | ||
Ligne 151 : | Ligne 174 : | ||
/usr/bin/xauth: creating new authority file /root/.Xauthority | /usr/bin/xauth: creating new authority file /root/.Xauthority | ||
</pre> | </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 → 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é.
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.
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 SSH → X11
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.
Une fois votre session configurée, dirigez-vous dans le section SSH → Tunnels
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:
Pour que cela devienne un paramètre par défaut, n'oubliez pas de la sauvegarder dans la session Default