Accueil > Informatique > Linux > ssh sous linux
ssh sous linux
mercredi 11 février 2009, par
Description
ssh (Secure shell) est un protocole de connections.
Dans l’exemple on utilise openssh-server pour le serveur, et openssh-client comme client.
Il exsite deux méthode de connections :
– Par utilisateur/mot de passe
– Par clé publique/clé privé
connections par utilisateur/mot de passe
Il est forcément nécessaire de disposer d’un serveur ssh et d’un client ssh.
Serveur
Il faut activer l’authentification par utilisateur/mot de passe
dans le fichier /etc/ssh/sshd_config il faut mettre :
PasswordAuthentification yes
Client
Pour le client il suffit de rentrer en ligne de commande :
ssh utilisateur@serveur.org
Le mot de passe vous sera demandé.
Connections par clé publique/clé privé
L’autre méthode pour se connecter est d’utiliser le système de clé publique/clé privé. C’est le principe de la cryptographie asymétrique
Client
Il est nécessaire de générer une clé sur le client :
ssh-keygen -t dsa
Le système demande où enregistrer la clé. Par défaut c’est dans : /.ssh/id_dsa. Il est demandé aussi une passphrase. Ce n’est pas une obligation, mais cela permet de protéger cette clé.
La clef publique a été créée avec la nouvelle clé privée. Elles sont habituellement localisées dans le dossier caché :
– « /.ssh/id_dsa.pub » pour la clé publique
– « /.ssh/id_dsa » pour la clé privé.
La clé publique doit être envoyé au serveur. Sur le client lancez la commande :
ssh-copy-id -i ~/.ssh/id_dsa.pub <username>@<ipaddress>
Dans le cas ou l’authentification par mot de passe est désctivé, l’autre methode pour copié la clé publique sur le serveur :
ssh login@serveur "echo $(cat ~/.ssh/id_dsa.pub) >> .ssh/authorized_keys"
Dorénavant pour se connécter au serveur il suffit de lancé :
ssh <username>@<ipaddress> -p <num_port>
Le mot de passe de la clé privé est demandé si on en a mis un.
La copie de fichier en ssh
La copie en ssh ressemble fortement a la copie de cp.
Pour copier un fichier à partir d’un ordinateur sur un autre avec SSH, vous devrez utiliser la commande scp. Cela ressemblera à ceci :
scp <fichier> <username>@<ipaddress>:<DestinationDirectory>
Ou en termes profanes, si je désirais copier un fichier d’un de mes ordinateurs à l’autre, je procède de cette manière :
scp fichier.txt utilisateur@serveur:/home/utilisateur
Ou copier un répertoire vers un ordinateur :
scp -r répertoire utilisateur@serveur:/home/utilisateur/
Vous pouvez aussi bien copier des fichiers à partir des ordinateurs à distance sur votre disque local :
scp utilisateur@serveur:/home/utilisateur/fichier.txt .
Les fichiers
$HOME/.ssh/known_hosts
Enregistre les clefs de tous les hôtes sur lesquelles l’utilisateur s’est connecté et qui n’apparaissent pas dans le fichier /etc/ssh/ssh_known_hosts Voir sshd(8).
$HOME/.ssh/identity, $HOME/.ssh/id_dsa, $HOME/.ssh/id_rsa
Contiennent les identités d’authentification de l’utilisateur, respectivement pour RSA du protocole 1, DSA du protocole 2 et RSA du protocole 2. Ces fichiers contiennent des données sensibles et ne doivent être lisibles que par l’utilisateur et non accessibles aux autres utilisateurs (en lecture, écriture et exécution). Note : ssh ignore purement et simplement un fichier de clef, s’il est accessible aux autres utilisateurs. On peut spécifier une phrase de passe (passphrase) lors de la création de la clef. La phrase de passe (passphrase) est utilisée pour crypter la partie sensible de ce fichier à l’aide de 3DES.
$HOME/.ssh/identity.pub, $HOME/.ssh/id_dsa.pub, $HOME/.ssh/id_rsa.pub
Contiennent les clefs publiques utilisées pour l’authentification (partie publique du fichier d’identité lisible par un humain). Il faut ajouter le contenu du fichier $HOME/.ssh/identity.pub dans le fichier $HOME/.ssh/authorized_keys sur chacune des machines sur lesquelles l’utilisateur souhaite se connecter à l’aide de la méthode d’authentification RSA de la version 1 du protocole. Il faut ajouter le contenu des fichiers $HOME/.ssh/id_dsa.pub et $HOME/.ssh/id_rsa.pub dans le fichier $HOME/.ssh/authorized_keys sur chacune des machines sur lesquelles l’utilisateur souhaite se connecter à l’aide de la méthode d’authentification DSA et RSA de la version 2 du protocole. Le contenu de ces fichiers n’est pas sensible et peut rester accessible aux autres utilisateurs (mais ce n’est pas obligatoire). Ces fichiers ne sont pas nécessaires, et de toute façon jamais utilisés automatiquement. C’est juste une commodité pour l’utilisateur.
$HOME/.ssh/config
C’est le fichier de configuration utilisateur. Le format de ce fichier ainsi que les options de configuration sont décrits dans ssh_config5. Étant donné les abus potentiels, ce fichier doit avoir strictement comme permission : lecture/écriture pour l’utilisateur, et inaccessible aux autres utilisateurs.
$HOME/.ssh/authorized_keys
Liste les clefs publiques (RSA/DSA) utilisables pour se connecter en tant que cet utilisateur. Le format de ce fichier est décrit dans la page de manuel sshd(8). Dans le cas le plus simple, le format est semblable à celui des fichiers d’identité « .pub ». Ce fichier n’est pas très sensible, mais il est recommandé qu’il soit accessible en lecture/écriture à l’utilisateur, et inaccessible aux autres utilisateurs.
ssh dans les scripts
Pour pouvoir utiliser ssh dans des script, il est nécessaire de mettre en oeuvre le méthode de clé publique/clé publique sans mot de passe à la passphrase. ensuite on utilise les commande de ssh/scp normalement. Aucun mot de passe ne sera demandé. C’est la clé privé, qui permet de crypter l’échange.
Choisir entre RSA et DSA
Le cryptage par DSA est plus fort que le cryptage par RSA même si le cryptage RSA est plus rapide à lire.
– RSA : Rivest_Shamir_Adleman
– DSA : Digital_Signature_Algorithm
Voir en ligne : Open Ssh