protocole ssh

Mise en place du serveur sur l'ordinateur 1

Normalement, le paquet openssh-server est installé sur votre clé.

Vous pouvez le vérifier en faisant une recherche via le gestionnaire de paquets. Si ce n'est pas le cas installez le.

Normalement, le serveur SSH sera lancé à chaque démarrage. Si ce n'est pas le cas, vous pouvez le lancer à tout moment avec la commande suivante (menu-->terminal) :

sudo /etc/init.d/ssh start

Et vous pouvez l'arrêter avec cette commande :

sudo /etc/init.d/ssh stop

Logiquement, vous ne devriez pas avoir besoin de configurer quoi que ce soit, mais sachez au besoin que le fichier de configuration se trouve dans /etc/ssh/ssh_config. Il faudra recharger SSH avec la commande sudo /etc/init.d/ssh reload pour que les changements soient pris en compte.

Voilà : votre machine est désormais un serveur SSH ! Vous pouvez vous y connecter depuis n'importe quel ordinateur sous Linux ou sous Windows dans le monde (pour peu que vous ne soyez pas derrière un pare-feu).


Connexion via SSH à partir du client: ordinateur 2

Toutes les machines équipées de Linux proposent la commande ssh qui permet de se connecter à distance à une autre machine.

ssh login@ip

Il faut remplacer login par votre login (demo) et ip par l'adresse IP de votre ordinateur.

Exemple:

ssh demo@aaa.bbb.ccc.ddd

Si, faute de mieux, vous voulez tester en vous connectant depuis votre PC à votre PC, vous pouvez taper :

ssh demo@localhost

Cette seconde méthode marche toujours, mais c'est moins impressionnant parce que vous ne faites que simuler une connexion réseau.

Normalement, le serveur devrait répondre au bout d'un moment et vous devriez voir quelque chose comme ce qui suit :

The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 49:d9:2d:2a:df:fd:80:ab:e9:eb:59:37:58:34:de:f7.
Are you sure you want to continue connecting (yes/no)?

Que se passe-t-il ? On vous dit que le fingerprint (empreinte) du serveur est 49:d9:2d:2a:df:fd:80:ab:e9:eb:59:37:58:34:de:f7. C'est un numéro unique qui vous permet d'identifier le serveur. Si demain quelqu'un essaie de se faire passer pour le serveur, le fingerprint changera forcément et vous saurez qu'il se passe alors quelque chose d'anormal. Ne vous inquiétez pas, SSH vous avertira de manière très claire si cela arrive.

En attendant, tapez < yes > pour confirmer que c'est bien le serveur auquel vous voulez vous connecter. Le serveur et le client vont alors s'échanger une clé de chiffrement. Normalement, le serveur devrait vous demander au bout de quelques secondes votre mot de passe (celui choisi par vous même lors de l'installation de la clef):

demo@localhost's password:

Si vous entrez le bon mot de passe, la console devrait vous afficher un message  puis un prompt qui correspond à la console de votre PC. Bravo, vous êtes connectés !

demo@antix1:~


Si aucune erreur ne s'affiche, c'est que vous êtes bien connectés et que vous travaillez désormais à distance sur votre machine ! Vous pouvez effectuer toutes les opérations que vous voulez comme si vous étiez chez vous.

Vos système linux étant construit sur la même base et comme nous n'avons pas modifier le nom de chaque système, le prompt est le même sur la machine locale que sur la machine distante (même utilisateur demo et même système d'exploitation antix1).

Ce n'est donc que par les commandes suivantes que vous allez pouvoir vérifier que le client contrôle bien le serveur.

Contrôle du le serveur (commande dans ordinateur 2 effet sur ordinateur 1)


  • Commençons par taper la commande permettant de connaitre son adresse ip. 

 sudo ifconfig ou  ip addr show Vous devez obtenir l'adresse de l'ordinateur 1 (vous pouvez ouvrir une autre console et taper la même commande pour obtenir l'adresse du client=ordinateur 2)


  • Lancer un programme sur l'ordinateur 1 (serveur) via ssh et l'afficher sur l'ordinateur 2 (client)

déconnectez vous

logout
 puis reconnectez vous avec l'option -X

ssh login@ip -X
puis lancer un programme graphique

leafpad ou leafpad & #pouvoir entrer de nouvelles commandes
Un éditeur de texte doit s'ouvrir sur l'ordinateur 2 (client). Le seu interet est d'économiser les ressources de votre ordinateur car vous posséder vous même ce programme;

  • Lancer un programme sur l'ordinateur 1 (serveur) via ssh et l'afficher sur l'ordinateur 1 (serveur)

fermer la fenêtre de leafpad: vous pouvez entrer de nouveau des commandes.

DISPLAY=:0.0

leafpad ou leafpad & #pouvoir entrer de nouvelles commandes
Cette fois ci la fenêtre s'est ouverte sur le serveur.


Transfert de fichiers sécurisé : scp

Si “ssh” permet d'obtenir un shell (console/terminal) et exécuter des commandes sur un ordinateur distant, il permet également de transférer des fichiers entre deux machines, toujours de manière sécurisée.

scp

Le moyen le plus simple et rudimentaire est la commande “scp”, fournie avec “Openssh-client” :

$ scp ~/Documents/fichier.txt demo@192.168.1.2:Documents/

Ici on envoie “fichier.txt” vers la machine distante 192.168.1.2, le fichier sera copié dans le répertoire “/home/demo/Documents”. Attention à la syntaxe de la cible, les deux point “:” qui suivent l'adresse indique le répertoire personnel de l'utilisateur. Si vous copiez vers/depuis un sous-répertoire du répertoire personnel vous devez l'indiquer sans “/” au début, comme dans notre exemple. Si vous voulez copier par exemple dans /etc/ssh/ il faudra écrire “famille@192.168.1.2:/etc/ssh/”.


Pour copier plusieurs fichiers de la machine locale à la machine distante, il suffit de les mettre à la suite, séparés par un espace :

$ scp fichier1 fichier2 fichier3 demo@192.168.1.2:

N'oubliez pas les deux points “:” après l'adresse de la machine distante, vous pouvez bien sûr indiquer des chemins différents.

Vous pouvez utiliser des expressions rationnelles avec “scp”, par exemple pour copier nos trois fichiers 1,2 et 3 de la machine distante à la machine locale (l'inverse de précédemment) :

$ scp demo@192.168.1.2:fichier[1-3] .

La notation “[1-3]” correspond aux entiers compris entre 1 et 3, cela correspond donc à nos “fichier1”, “fichier2” et “fichier3”. Le point “.” en fin de commande indique le répertoire courant sur la machine locale comme cible de la copie.


Modifié le: lundi 20 novembre 2017, 13:12