TP introduction à SSH



Le service ssh

Session de travail cliente

  1. Pour en savoir plus sur le serveur ssh, consulter man ssh. Les fichier de configuration sont placés dans /etc/sshd
  2. Syntaxe : ssh user@serveur, user étant un compte valide défini sur serveur. A la place du nom du serveur, utiliser l'adresse IP, s'il y a une difficulté de résolution des noms (rappel : ou renseignez le fichier /etc/hosts)
  3. Connectez-vous au compte stage/stg du serveur voisin. Vous êtes dans la même situation qu'avec telnet, prise de controle à distance
  4. Vous pouvez ouvrir une session root sur le serveur, avec la commande su, mais attention ! respectez l'environnement
  5. Y passer quelques commandes (sans rien abimer !).
    en particulier créer un compte (login/mot de passe) sur cette machine voisine.
  6. Pour terminer une session de travail ssh, taper exit
  7. Application à la gestion de serveurs distants
    1. Se connecter sur un serveur ssh distant comme stage
    2. Y Ouvrir une session root
    3. Les serveurs httpd (apache) et mysqld y sont-ils en fonctionnement ? Eventuellement les démarrer.
    4. S'y connecter comme root de mysqld (mysql -u root -p). Examiner les bases existantes (show databases;)
    5. Y créer une nouvelle base de données (mysql> create database cdi)
    6. Se déconnecter de mysqld, puis de la session superviseur, puis de ssh
  8. Problème rencontré
    En cas de changement dans la correspondance client-serveur (par ex. changement de disque sur l'une des machines, pour le meme nom ou la meme adresse IP), les clés ne corrrespondant plus, la connexion est refusée par sécurité.
    Pour passer outre, intervenir dans le fichier $HOME/.ssh/know_hosts et supprimer la ligne décrivant la connexion au serveur.

Examen du serveur

  1. Votre serveur sshd est-il actuellement en exécution sur votre machine ? Comment feriez-vous pour arreter ou démarrer ce service
  2. Plus généralement, pour connaitre TOUS les serveurs réseaux à l'écoute, et ceux qui sont actifs, utilisez netstat -ntl (ou netstat -tl). Plus d'infos : consulter le man(ual)
  3. Utiliser last | less sur votre machine locale pour connaitre les clients qui se sont connectés récemment sur votre serveur sshd

Transfert de fichiers par scp

scp (secure copy), permet de copier des fichiers et des arborescences, en utilisant ssh pour sécuriser les transferts
  1. syntaxe générale:
    scp [-r] source destination, où source et destination désigne l'ensemble des fichiers à copier ou le répertoire d'accueil.
    Si les fichiers sont locaux, on utilise la syntaxe habituelle.
    S'ils sont distants, la notation est celle de ssh : user@serveur:fichiers
  2. Exemples :
    scp -r user@serveur:fichiers  rep-local , pour copier du serveur distant les fichiers vers le répertoire rep d'accueil local
    scp -r fichiers-locaux  user@serveur:rep , pour copier les fichiers locaux vers le répertoire situé sur le serveur distant
  3. Effectuez les copies suivantes, en expliquant ce qui est fait. Vérifiez les résultats
    [stage@p0x]$ scp  /etc/services stage@p0y:/home/stage/
    [stage@p0x]$ scp  stage@p0y:/etc/passwd /home/stage/
    
  4. stage crée le répertoire d'accueil chez lui sur p0x. La copie se fait sur p0y, de p0y vers p0x
    [stage@p0x]$ cd /home/stage ; mkdir tmp
    [stage@p0y]$ scp -r /usr/share/doc/bash-doc stage@p0x:/home/stage/tmp/
    
  5. Copier le fichier /usr/share/webmin0.92.tar.gz présent sur la station p10 dans /usr/local/ de votre station.
  6. Sauvez vous "rebondir", sur une 3ème machine ?

Application

On a vu comment "prendre" la main sur une console distante avec ssh, et faire exécuter à distance des applications. Voici comment faire pour faire afficher des applications sur sa console.
# tout le monde est autorisé à utiliser le serveur X
[user@local]$ xhosts +
[user@local]$ ssh login@serveur
[login@serveur]$ export DISPLAY=iplocal:0.0
[login@serveur]$ xclock &   # pour essayer
[login@serveur]$ konqueror &    # pour travailler