2ème BTS-SR Serveurs OpenSSH - GNU/Linux
OpenSSH Sous Linux
Introduction :
▪ SSH (Secur Shell) est un outil très puissant permettant d’établir une connexion
chiffrée entre une machine cliente et une machine serveur contrairement à Telnet.
▪ Une connexion SSH peut également servir à faire du transfert de fichier crypté, via
le sftp (SSH file transfer protocol)
Installation
▪ Installer openssh-server sur la machine à joindre en SSH, qui sera le "serveur".
# apt-get install openssh-server
▪ Il vous faudra installer sur la machine qui commande, le "client", openssh-client.
# apt-get install openssh-client
Le fichier de configuration est : /etc/ssh/sshd_config
Utilisations de SSH
Accès à distance à la console en ligne de commande (shell )
▪ Pour ouvrir une session sur un ordinateur distant ayant un serveur SSH :
Ssh <nom_utilisateur>@<ip_address> -p <num_port>
▪ Exemple :
ssh
[email protected] -p 12345
L'option -p <num_port> qui précise le port utilisé par le serveur est facultative. Si rien n'est
précisé, c'est le port 22 qui sera utilisé par défaut (protocole TCP).
Envoi de fichiers et répertoires avec la commande (SCP)
Secure copy (SCP) désigne un transfert sécurisé
a. De serveur à serveur depuis votre machine locale.
Copie un dossier d’un serveur (serveur1) vers un autre serveur (serveur2) depuis votre
machine locale.
Cela nécessite d’avoir accès aux deux serveurs, depuis votre machine locale.
scp -r -p user@serveur1:chemin/vers/dossier/source
user@serveur2:chemin/vers/dossier/destination
b. De serveur à serveur en étant connecté à un serveur.
La commande est sensiblement la même, vous êtes connecté sur la machine où sont
disponibles les fichiers.
scp -r -p chemin/vers/dossier/source
user@serveur2:chemin/vers/dossier/destination
▪ L’option -p préserve les dates de modification, d’accès.
1
2ème BTS-SR Serveurs OpenSSH - GNU/Linux
Authentification
1. Authentification par mot de passe
▪ L'authentification par mot de passe est le mode d'identification par défaut.
▪ Suite à l'installation du paquet openssh-server il peut parfois être nécessaire de
modifier le fichier de configuration /etc/ssh/sshd_config notamment si vous
rencontrez le problème suivant :
moi@votre machine:~$ ssh
[email protected] Permission denied (publickey)
Dans ce cas, il faut le fichier /etc/ssh/sshd_config sur le serveur SSH de la manière
suivante :
# Change to yes to enable tunnelled clear text passwords
PasswordAuthentication yes
2. Authentification par un système de clés publique/privée
▪ SSH offre l'Authentification par clé publique/privée au lieu des mots de passe.
Exemple
Pour une clé utilisant le protocole de chiffrage RSA, vous saisirez dans le terminal du client :
ssh-keygen -t rsa
▪ Il vous sera alors demandé où sauver la clé privée (acceptez juste l'endroit par défaut
: ~/.ssh, et ne changez pas le nom du fichier généré) puis de choisir
une passphrase (phrase de reconnaissance).
▪ Votre clef publique a été créée avec la nouvelle clé privée. Elles sont habituellement
localisées dans les fichiers cachés
/Dossier Personnel/.ssh/id_rsa.pub pour la clé publique.
/Dossier Personnel/.ssh/id_rsa pour la clé privée.
▪ Il faut maintenant envoyer au serveur votre clé publique pour qu'il puisse vous
chiffrer des messages.
▪ ssh-copy-id est un script qui utilise ssh pour se connecter à une machine à distance en
utilisant le mot de passe de l'utilisateur.
ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<ipaddress>
ou si le port est différent du port standard 22 (notez les guillemets):
ssh-copy-id -i ~/.ssh/id_rsa.pub "<username>@<ipaddress> -p <num_port> "
Vous devrez alors donner le mot de passe utilisateur de cet ordinateur. Après que votre clé
publique ait été ajoutée, vous devenez un hôte de confiance.
Remarque :
Si l'authentification par mot de passe est désactivée, alors vous aurez besoin de copier-coller
votre clé suivant un autre moyen.
Voici une ligne à copier pour ajouter sa clé publique sur le serveur distant :
ssh login@serveur "echo $(cat ~/.ssh/id_rsa.pub) >> .ssh/authorized_keys "
2
2ème BTS-SR Serveurs OpenSSH - GNU/Linux
Configuration du serveur SSH
▪ La configuration par défaut du serveur SSH sous Ubuntu est suffisante pour
fonctionner correctement. Le fichier de configuration est /etc/ssh/sshd_config.
▪ Tableau des principales directives à modifier :
Directive du fichier Val par défaut Valeur possible Effet de la valeur choisie
sous Ubuntu
Port 22 Tous les ports de 1 Permet d'éviter des
à 65535 désagréments avec les robots
qui scannent Internet,
notamment les ports par
défaut
PubkeyAuthentication no yes Choisir yes si vous voulez
établir l'authentification par
clé comme expliqué plus haut
PermitRootLogin no yes, without- Cette option permet
password d'autoriser ou non une
connexion au serveur
openSSH avec le login root.
Cette option permet
d'autoriser ou non des
connexions avec un couple
identifiant/mot de passe. Il est
PasswordAuthentication
yes no plus sûr d'autoriser l'accès à la
machine uniquement aux
utilisateurs avec des clés SSH
placées dans le fichier
~/.ssh/authorized_keys.