SSH: Les bases partie 02

7 minute de lecture

Mis à jour :

SSH Partie client

Noous l’avons vu , openssh est composé d’une partie serveur ssh partie 01, ainsi que d’un client.

Connexion

Nous pouvons nous connecter à l’aide des commandes suivantes:

  • ssh <serveur>
  • ssh <utilisateur@serveur>
  • ssh -p <port> <utilisateur@serveur>

Dans l’hypothèse ou le DNS ne serait pas configurer , utiliser l’IP pour l’instant.

Lors d’une première connexion vous avez un message de ce genre:

>~ ssh 127.0.0.1 -p 1022
The authenticity of host '[127.0.0.1]:1022 ([127.0.0.1]:1022)' can't be established.
ECDSA key fingerprint is SHA256:fYZ7StE4Z+4Ut0slP2FlhZGoI03Tt4yHqxhstkRo3/I.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:1022' (ECDSA) to the list of known hosts.
  ###################################################################################################
  #                                                                                                 #
  #                                                                                                 #
  #                                                                                                 #
  #                                                                                                 #
  #       If you get acces on this system without permission , you allready have a problem          #
  #                                                                                                 #
  #                                                                                                 #
  ###################################################################################################
ordinatous@127.0.0.1's password:
Linux gally-reborn 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

                    _________                          ______       ________                                  ______                         ______
                    __  ____/__________  _________________  /_      ___  __ )_____ ______________ _   ___________  /___  _________   ___________  /___  _________
                    _  /    __  ___/  / / /_  __ \  ___/_  __ \     __  __  |  __ `/_  __ \_  __ `/   ___  __ \_  /_  / / /_  ___/   ___  __ \_  /_  / / /_  ___/
                    / /___  _  /   / /_/ /_  / / / /__ _  / / /     _  /_/ // /_/ /_  / / /  /_/ /    __  /_/ /  / / /_/ /_(__  )    __  /_/ /  / / /_/ /_(__  )
                    \____/  /_/    \__,_/ /_/ /_/\___/ /_/ /_/      /_____/ \__,_/ /_/ /_/_\__, /     _  .___//_/  \__,_/ /____/     _  .___//_/  \__,_/ /____/
                                                                                          /____/      /_/                            /_/
Bonjour, ordinatous. La forme ?
Nous sommes le:samedi 30 juin 2018, 13:12:03 (UTC+0200)
Kernel Information:Linux 4.9.0-6-amd64
 13:12:03 up 2:41, 1 user, load average: 0,59, 0,84, 0,92

La fois suivante plus de message concernant le fingerprint, et il sera indiqué la dernière connexion au serveur:

>~ ssh 127.0.0.1 -p 1022
  ###################################################################################################
  #                                                                                                 #
  #                                                                                                 #
  #                                                                                                 #
  #                                                                                                 #
  #       If you get acces on this system without permission , you allready have a problem          #
  #                                                                                                 #
  #                                                                                                 #
  ###################################################################################################
ordinatous@127.0.0.1's password:
Linux gally-reborn 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jun 30 13:12:03 2018 from 127.0.0.1

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

                    _________                          ______       ________                                  ______                         ______
                    __  ____/__________  _________________  /_      ___  __ )_____ ______________ _   ___________  /___  _________   ___________  /___  _________
                    _  /    __  ___/  / / /_  __ \  ___/_  __ \     __  __  |  __ `/_  __ \_  __ `/   ___  __ \_  /_  / / /_  ___/   ___  __ \_  /_  / / /_  ___/
                    / /___  _  /   / /_/ /_  / / / /__ _  / / /     _  /_/ // /_/ /_  / / /  /_/ /    __  /_/ /  / / /_/ /_(__  )    __  /_/ /  / / /_/ /_(__  )
                    \____/  /_/    \__,_/ /_/ /_/\___/ /_/ /_/      /_____/ \__,_/ /_/ /_/_\__, /     _  .___//_/  \__,_/ /____/     _  .___//_/  \__,_/ /____/
                                                                                          /____/      /_/                            /_/
Bonjour, ordinatous. La forme ?
Nous sommes le:samedi 30 juin 2018, 13:16:09 (UTC+0200)
Kernel Information:Linux 4.9.0-6-amd64
 13:16:09 up 2:45, 1 user, load average: 1,00, 0,87, 0,91

Déport d’affichage

Le déport d’affichage, s’il est autorisé côté serveur s’obtient avec l’option -X lors de la tentative de connexion:

  • ~$ ssh -X <serveur>

Si l’on veut afficher xeyes:

  • serveur:~$ xeyes

Transfert de fichiers

Il est possible de copier des fichiers dans les 2 sens au travers une connexion ssh.

En local vers le serveur:

  • scp /chemin/du/fichier/local utilisateur@serveur:/chemin/du/fichier/distant

Pour indiquer précisément le chemin distant l’autocomplétion ne fonctionne pas, c’est à vous d’indiquer le chemin et le nom du fichier.

Depuis le serveur vers la machine locale:

  • scp utilisateur@serveur:/chemin/du/fichier/distant /chemin/du/fichier/local

Authentification par clés

La commande servant à créer des clés ssh est :

  • ssh-keygen

Qui va créer une paire de clé dans votre répertoire personnel :

  • ~/ssh/id_rsa
  • ~/.ssh/id_rsa.pub

La clé id_rsa est la clé privé qui vous permet de vous connecter. La clé id_rsa.pub est la clé à placer dans le fichiers authorized_keys du compte dfini pour les connexions.

Cependant id_rsa.pub ce n’est pas très parlant, aussi il est popssible de nommer la clé, et de lui adjoindre un commentaire.

Phrasepass

Information importante, il est possible de créer des clés sans mot de passe, c’est à vous de voir quel niveau de sécurité vous souhaitez imposer .

Création de la paire de clés

  • L’option -f indique le nom du fichier
  • L’option -C indique un commentaire
>~ ssh-keygen -f ~/.ssh/exemple_rsa -C "clé exemple"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ordinatous/.ssh/exemple_rsa.
Your public key has been saved in /home/ordinatous/.ssh/exemple_rsa.pub.
The key fingerprint is:
SHA256:h+eGunJyH4ICSRRJ2xuyaGayF+d9DeFdUDTgKNujazg clé exemple
The key's randomart image is:
+---[RSA 2048]----+
|.+o       o++    |
|..o      o . .   |
| + o  . o . .    |
|o.o o  = + .     |
|==... . S +      |
|=o + o . O       |
|. o o.+ + +      |
| . .E += o       |
|     B+o.        |
+----[SHA256]-----+

Equipe

Nous avons vu comment créer des clé très simplement en les nommant. Il est donc tout à fait possible d’en créer autant que l’on veut, les rendre nominative.

Il suffit de remettre la clé privé à chacun des collaborateurs, et de copier les clés publique dans le fichier authorized_keys du compte désigné, par exemple admin.

L’utilisateur devra penser à protéger son fichier en étant le seul en lecture, lui indiquer la commande suivante:

  • chmod 600 ~/.ssh/id_rsa

Cependant les clés peuvent être rangées ailleurs, il suffira d’indiquer l’emplacement:

  • ssh -i ~/autre/emplacement/exemple_rsa root@serveur

Connexion a root

Pour se connecter au compte root du serveur il faut donc créer le fichier : /root/.ssh/authorized_keys, et y placer les clés publique:

  • # echo /home/ordinatous/.ssh/exemple_rsa.pub >> /root/.ssh/authorized_keys

Vérification:

# cat /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUBAAzqHfdRl/kyQuE6E1KjcEpnMKM/i/NszsHE6m/w3uU2dcnenDL/tAemG+enjEfMPkk+bWZLrlil3NNvSERJE9M3YbJmc/8dcVNArhH5KvJtLnmHnGIXvuU/fi34zozKA08GTZo6/EUQvbN2DQMChhjjty3wBDhGPtcN1aQWfQ5DGa22gMEslXpZyYWVkprJfVpO7YVjgpnAsduSObhus2+cCSiyRv5f9e2Qu7r73/Y6FEu7MaNWY4rzp+/z2u7HxHRLDgHtBAC2a+DXDQlWcHWq0GnmH/4HZUjIIBbw2r4dJGEUxK4hBFRsIR26lQcGA0r9kqSauERpmThSYQ1 clé exemple

Suppression de clés

Une clé se supprime aisément:

# sed -i '/clé exemple$/d' /root/.ssh/authorized_keys
root@gally-reborn:/home/ordinatous# cat /root/.ssh/authorized_keys
root@gally-reborn:/home/ordinatous# ^C