LINUX:Ssh et Scp

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour à SSH


But

Sous Linux/Fedora, les clients SSH sont aussi d'office installés. Nous verrons les commandes ssh et scp.


ssh

Cette commande de ligne, sous son aspect le plus simple, permet d'ouvrir une session de type terminal sur une machine distante. Cette session donne la possibilité d'effectuer toutes sortes d'actions en ligne de commande directement sur cette machine distante et par conséquence, de créer des scripts utilisables, par exemple, dans le CRON.

La structure de base de la commande est:

ssh -p <port> <user>@<host>

où:

port: port de connexion, par défaut 22 (facultatif)
user: nom d'utilisateur sur la machine distante, par défaut, l'utilisateur courant de la machine appelante (facultatif)
host: nom de la machine distante ou son adresse IP (nécessaire)

Par exemple, pour accéder à la machine distante "serverdb" par le port 22 avec l'utilisateur local et distant "albert":

ssh serverdb

ou, autre exemple, pour accéder à la machine distante "serverdb.home.dom" par le port 4321 avec l'utilisateur local "root" et et l'utilisateur distant "albert":

ssh -p 4321 albert@serverdb.home.dom


Lors de la première connexion SSH, il est demandé d'accepter le certificat. Ensuite il faut fournir le mot de passe de l'utilisateur distant. Sous linux, le certificat est stocké dans le fichier "known_hosts" du répertoire ".ssh" se trouvant à la racine de l'espace disque de l'utilisateur. Ce chemin est renseigné dans le fichier "/etc/passwd".


scp

Cette commande de ligne, sous son aspect le plus simple, permet de copier un ou plusieurs fichiers et éventuellement toute une arborescence de fichiers d'une machine vers une autre.

On copie d'une source vers une cible. La structure de base de la commande est:

scp -r -P <port distant> <user source>@<host source>:<fichier source>  <user cible>@<host cible>:<fichier cible> 

où:

-r: récursif, nécessaire dans le cas de copie d'une arborescence de fichiers sinon pas.
port distant: port de connexion sur la machine distante, par défaut 22 (facultatif)
user source: nom d'utilisateur sur la machine source, par défaut, l'utilisateur courant de la machine appelante (facultatif)
user cible: nom d'utilisateur sur la machine cible, par défaut, l'utilisateur courant de la machine appelante (facultatif)
host source: nom de la machine source ou son adresse IP (facultatif)
host cible: nom de la machine cible ou son adresse IP (facultatif)
fichier source: fichier(s) ou répertoire(s) sources à copier (nécessaire)
fichier cible: fichier cible s'il est seul en cas renommage ou, plus habituellement, le répertoire cible (nécessaire)


Par exemple, pour copier un fichier de configuration "perso.php" se trouvant dans le répertoire "/develop/waterbear/conf" la machine distante "serverdb" par le port 22 avec l'utilisateur local et distant "albert" dans le répertoire "/web/waterbear/conf" en renommant le fichier "perso.new.php":

scp /develop/waterbear/conf/perso.php serverdb:/web/waterbear/conf/perso.new.php

Autre exemple inverse, on récupère le fichier "perso.php" de cette même machine distante et on le met dans le répertoire courant:

scp serverdb:/web/waterbear/conf/perso.php .

Autre exemple, on copie tous les fichiers et son arborescence se trouvant sous le répertoire "/produc/photo" sur la machine "serverdb" qui écoute sous le port "4321" dans le répertoire "/travail" en s'authentifiant avec l'utilisateur "eric":

scp -r -P 4321 /produc/photo/* eric@serverdb:/travail/

Evidemment, cet utilisateur "eric" doit avoir les droits d'écriture dans ce répertoire "/travail".


Lors de la première connexion SSH, il est demandé d'accepter le certificat. Ensuite il faut fournir le mot de passe de l'utilisateur distant. Sous linux, le certificat est stocké dans le fichier "known_hosts" du répertoire ".ssh" se trouvant à la racine de l'espace disque de l'utilisateur. Ce chemin est renseigné dans le fichier "/etc/passwd".


Notes:

  • Il existe aussi une commande: sftp, similaire à ftp mais en mode sécurisé.
  • Ces commandes peuvent être implémentées sous Windows avec les packages "openssh" ou "putty" (putty.exe, pscp.exe, psftp.exe).
  • On peut accroitre la sécurité en remplaçant le mot de passe par une paire de certificats (privés-public) dont seul l'utilisateur possède la clé privée. Cette clé peut être en outre protégée par un mot de passe pour contrecarrer le vol. Cet usage est à privilégier dans le cas d'utilisation en dehors du LAN privé. Il est aussi utilisé pour automatiser la synchronisation via la commande "rsync" en la sécurisant par SSH.




retour à SSH