SSH : Secured SHell
La page ci-dessous est un condensé de
cet article initialement écrit pour les
NSLU2 et autres Synology, que j'ai adapté pour une distri linux standard.
Installation de SSH
Pour installer le client SSH de base, taper la commande :
aptitude install openssh-client
Pour le serveur :
aptitude install openssh-server
Configuration du serveur
Il est
absolument nécessaire de configurer correctement son serveur pour éviter toute intrusion, pour celà il faut interdire l'accès par login / password et interdire le login en root.
Editer le fichier
/etc/ssh/sshd_config (en root) et modifier les lignes suivantes :
PasswordAuthentication yes
en
PasswordAuthentication no
PermitRootLogin yes
en
PermitRootLogin no
Relancer SSH pour qu'il prenne en compte la nouvelle configuration :
/etc/init.d/ssh restart
Création d'une paire de clés RSA
Se connecter avec l'utilisateur en question.
Sur votre distri linux préférée, taper la commande suivante :
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pierrot/.ssh/id_rsa): nom_de_la_cle_privee
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in nom_de_la_cle_privee.
Your public key has been saved in nom_de_la_cle_privee.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx pierrot@tamachine
Ajout de la clé publique d'un utilisateur
L'utilisateur doit se connecter à la machine.
Aller dans son répertoire personnel :
/home/utilisateur/
Créer le dossier
.ssh si il n'existe pas
mkdir .ssh
chmod og= .ssh
pour ajuster les droits sur le dossier
cd .ssh
Créer le fichier
authorized_keys avec la commande suivante :
echo ssh-rsa AAAAB3NzaC1yc2EAAAABIwAA...aJ3Wy+Ws4IZEgdJgPlTYUBWWtCWOGc= john@hostname > authorized_keys
chmod og= authorized_keys
pour ajuster les droits sur le fichier
nb : remplacer la chaine
AAAAB3NzaC1yc2EAAAABIwAA...aJ3Wy+Ws4IZEgdJgPlTYUBWWtCWOGc par votre clé publique générée précédemment.
Connexion au serveur SSH
Pour se connecter au serveur il suffit de taper :
ssh -i utilisateur@server
L'option
-i permet de demander une connexion par clé RSA.
Remplacer
server avec le nom du serveur ou son adresse IP.
SVN over SSH
Pour accéder à un serveur SVN sur une machine distante n'ayant pas le port 3690 ouvert.
Créer un tunnel SSH dans un premier terminal :
ssh -i your_private_key.ppk -L 3690:localhost:3690 user@machine_distante
Puis sur un autre terminal, faites vos opérations svn :
svn co svn://localhost/your_svn_project
...un peu plus d'info sur les tunnels SSH
Configurer sa Livebox via SSH