Sunteți pe pagina 1din 8

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

ssh
Installation du serveur SSH Copier des fichiers via SSH Navigation via SSH Nautilus Konqueror Console Se connecter un ordinateur distant via SSH Authentification par mot de passe Authentification par cl publique Restriction d'accs SSH Accs automatique pour des scripts Utiliser le ssh-agent Le fichier de configuration du serveur SSH Utiliser SSH pour faire du SFTP (FTP scuris) Tunnliser sa connexion internet par SSH avec l'aide de Squid Partie serveur Partie client Tunnliser sa connexion internet par SSH (sans Squid) Partie serveur Partie client Dlai lors de la connexion Liens

warty, hoary, administration, securite, serveur

SSH
OpenSSH est une version libre de la suite de protocole de SSH, des outils de connectivit de rseau sur lesquels un nombre croissant de personnes sur l'Internet viennent s'appuyer. Beaucoup d'utilisateurs de Telnet, Rlogin, FTP, ou d'autres programmes identiques, ne se rendent pas compte que leur mot de passe est transmis travers les rseaux en clair. OpenSSH chiffre tout le trafic (mots de passe y compris). OpenSSH fournit galement une varit de mthodes d'authentification. Comme son nom l'indique, OpenSSH est dvelopp dans le cadre du projet OpenBSD

Installation du serveur SSH


installez le paquet openssh-server. Ainsi vous aurez install ssh-server sur votre poste. Par dfaut, il se lance au dmarrage. Pour l'activer aprs une fausse manipulation :
sudo /etc/init.d/ssh start

Copier des fichiers via SSH


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>

1 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

Ou en termes profanes, si je dsirais copier un fichier d'un de mes ordinateurs l'autre, je procde de cette manire :
scp fichier.txt hornbeck@192.168.1.103:/home/hornbeck

Vous pouvez aussi bien copier des fichiers partir des ordinateurs distance sur votre disque local :
scp hornbeck@192.168.1.103:/home/hornbeck/urls.txt .

Le point la fin de commande indique de copier le fichier dans le rpertoire courant. Vous pouvez aussi le renommer en le copiant ( mon.txt ) sur le disque local :
scp hornbeck@192.168.1.103:/home/hornbeck/urls.txt ./mon.txt

Vous pouvez trs bien copier un fichier d'un ordinateur vers un autre tout en tant sur un troisime ordinateur :
scp nom@ordi1:chemin/fichier nom@ordi2:chemin/fichier

Navigation via SSH


En utilisant Nautilus, vous pouvez galement accder aux emplacements distance par l'intermdiaire de SSH pour passer en revue, diter et copier, des fichiers. Ouvrez Nautilus, le navigateur de fichier (Poste de travail Dossier personnel), puis taper CtrlL. Entrez l'URL suivante (remplacez username et hostname en consquence) :
ssh://username@hostname:port

La copie de fichier se fait avec le glisser-dposer dans la fentre de Nautilus comme sur votre systme de fichier local. Pour accder directement un rpertoire donn (pratique avec l'utilisation des signets), il suffit de rajouter le chemin en fin d'URL :
ssh://username@hostname:port/le/chemin/voulu/

Le principe est similaire celui utilis par Nautilus, l'exception du nom de protocole : fish. Dans la barre d'adresse, tapez :
fish://<username>@<hostname>

Une boite de dialogue apparaitra et demandera le mot de passe. Attention, si vous ne mentionnez pas le nom d'utilisateur, c'est l'utilisateur courant sur la machine locale qui aura la main. Pour pouvoir parcourir vos fichiers accessibles par SSH, il vous faut monter un systme de fichier. Visitez la doc prvue cet effet : SSH Filesystem. Remarque : cette mthode permet aussi d'y accder de manire transparente avec Nautilus ou Konqueror sans utiliser les adresses spciales prcdentes.

Se connecter un ordinateur distant via SSH

2 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

Pour ouvrir une session sur un ordinateur distant ayant un serveur SSH, vous devez crire quelque chose comme ceci :
ssh <username>@<ipaddress> -p <num_port>

Exemple :
ssh phyrex@192.168.23.42 -p 12345

L'option -p xxx est facultative. Si rien n'est prcis, c'est le port 22 par dfaut qui sera utilis. Vous pouvez employer le hostname (s'il est connu du systme dans /etc/hosts) au lieu des adresses IP.

Authentification par mot de passe


Une authentification par mot de passe (transmis chiffr) est possible. Suite l'installation du paquet openssh-server il peut parfois tre ncessaire de modifier le fichier de configuration sshd_config notamment si vous rencontrez le problme suivant :
moi@maison:~$ ssh user@domain.com Permission denied (publickey).

Dans ce cas, il faut trs basiquement modifier le fichier /etc/ssh/sshd_config de la manire suivante : # Change to yes to enable tunnelled clear text passwords PasswordAuthentication yes Puis en cas de modifications, redmarrer le service avec la commande :
sudo /etc/init.d/ssh restart

Authentification par cl publique


Autrefois tout le monde employait l'authentification typique via identifiant-mot de passe. Cependant si quelqu'un connait votre mot de passe, la scurit est compromise. Pour tre dbarrass du problme, SSH offre l'Authentification par cl publique/prive au lieu des mots de passe simples . De cette manire, il faut tre en possession de non plus une mais de deux informations pour se connecter (avoir la cl prive & connaitre le mot de passe de cette cl). Ceci peut permettre par exemple : un admin de se connecter des centaines de machines sans devoir connaitre des centaines de mots de passe diffrents ; de ne pas avoir un mot de passe saisir toutes les 2 minutes (en utilisant ssh-agent). moins que vous n'ayez dj un couple de cls, vous devez d'abord en crer. Tapez chez le client :
ssh-keygen -t dsa

Il vous sera alors demand o sauver la cl prive (acceptez juste l'endroit par dfaut) puis de choisir une passphrase. La passphrase est employe pour chiffrer votre cl prive. Toute personne qui obtiendrait l'accs votre cl prive (non protge) aurait vos permissions sur d'autres ordinateurs.

3 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

Veuillez prendre un instant et choisissez une trs bonne passphrase. Les ordinateurs distants feront confiance la machine qui pourra dchiffrer des cls chiffres avec votre cl publique (en gros, il faut mettre la cl publique sur le serveur auquel on veut accder). Votre clef publique a t cre avec la nouvelle cl prive. Elle est habituellement localise dans le dossier cach ~/.ssh/id_dsa.pub . L'utilisateur distant doit avoir cette cl (c'est une ligne de caractres en code ASCII) dans son fichier de cl d'autorisation situ ~/.ssh/authorized_keys2 sur le systme distant. Ainsi vous copiez-collez juste la ligne dans le fichier authorized_keys2 ou employez la commande ssh-copy-id comme ceci (fileserver01 peut tre l'adresse IP du serveur) :
ssh-copy-id -i ~/.ssh/id_dsa.pub fileserver01

Vous devrez donner le mot de passe utilisateur de cet ordinateur. Si l'authentification par mot de passe est dsactive, alors vous aurez besoin de copier-coller votre cl suivant un autre moyen. Aprs que votre cl publique ait t ajoute, vous devenez un hte de confiance. Lancez :
ssh fileserver01

et vous serez tent de taper votre mot de passe mais c'est votre passphrase qui vous est demande. Il y a une diffrence entre votre mot de passe et la passphrase. Le mot de passe est situ dans /etc/passwd du systme distant alors que la passphrase sert dchiffrer votre cl prive de votre systme local. Pour reprendre, deux choses sont ncessaires pour obtenir un accs rellement scurisant (et scuris ) par authentification cl publique au-dessus de l'authentification par mot de passe classique : 1. Votre cl prive, chiffre ; 2. Votre passphrase, utilise pour dchiffrer votre cl prive. Ainsi si vous choisissez de ne pas avoir de mot de passe (ce qui est possible, voyez la prochaine section), vous aurez un minimum de scurit autant qu'en utilisant seulement une authentification par mot de passe. Vous pouvez vouloir neutraliser l'authentification par mot de passe pour des raisons de scurit en plaant dans le fichier de configuration /etc/ssh/sshd_config la ligne PasswordAuthentication no (et ne pas avoir UsePAM yes !, ou autrement dit en mettant galement UsePAM no ). N'oubliez pas de relancer votre serveur sshd aprs avoir chang la configuration :
sudo /etc/init.d/ssh restart

Si aprs avoir suivi ce tutoriel un mot de passe est toujours demand, il se peut que ce soit du un probleme de droits sur votre 'home directory'. Sur la machine distante regardez le fichier :
tail /var/log/auth.log

Plus d'indications vous seront donn dedans, et si la ligne suivante apparait :


Authentication refused: bad ownership or modes for directory /home/votre_login

Alors faites :

4 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

chmod 755 $HOME

Et tout devrait rentrer dans l'ordre.

Restriction d'accs SSH


Quand on utilise SSH avec l'authentification par cl, il y a d'autres dispositions. Le serveur distant peut limiter l'utilisation de certaines commandes permises. Si vous maintenez un dpt CVS, vous pourriez utiliser des lignes comme ceci dans le fichier authorized_keys2 :
command="/usr/bin/cvs server" ssh-dss AAAAB3N....

Ceci permettrait que seule cette commande puisse tre utilise. Rien d'autre.

Accs automatique pour des scripts


L'authentification par cl publique (voir ci-dessus) peut galement tre employe pour automatiser les tches qui exigeraient habituellement l'introduction au clavier d'un mot de passe. Imaginez vouloir copier un dossier partir d'un ordinateur distant tous les jours minuit. Tout ce que vous avez faire c'est d'tablir la confiance entre ces deux ordinateurs. Crez un compte de service sur un ordinateur, crez une paire de cl (ssh-keygen - t DSA) et quand on vous demande de rentrer la passphrase taper juste sur la touche Entre . Ceci fera que votre cl priv ne sera pas protge. Ajoutez la cl publique de l'autre ordinateur dans le fichier authorized_keys2 ( ssh-copy-id ). Maintenant vous pouvez utiliser SSH sur cette machine sans une passphrase taper. Ajoutez une rfrence SSH dans votre crontab et vous tes prt. Avoir une clef prive non protge peut tre un trou de scurit. Les intrus devront seulement obtenir l'accs la cl prive et pourront accder aux ordinateurs distants.

Utiliser le ssh-agent
Si vous devez frquemment copier des fichiers avec SSH ou accder d'autres ordinateurs de votre rseau (ce qui est une tche commune pour des administrateurs), vous vous demandez probablement s'il y a une manire de simplifier l'utilisation de la passphrase. En fait il y a SSH agent. Vous devez seulement entrer votre passphrase une fois en employant ssh-add et tout ce que vous commencez comme sous-processus de SSH agent se rappellera cette passphrase. Trop thorique ? Bien, vous n'aurez pas besoin de vous inquiter de l'agent. Votre session X est prte pour avoir le ssh-agent en session automatiquement. Tout ce que vous devez faire c'est lancer ssh-add et saisir votre passphrase. La prochaine fois que vous utiliserez SSH pour accder un autre ordinateur, vous n'aurez pas entrer nouveau votre passphrase. Cool, non ? Vous devrez bloquer votre session pendant vos absences car d'autres pourraient accder aux ordinateurs distants partir de votre machine sans savoir votre passphrase. Si vous voulez rentrer votre passphrase une fois juste aprs l'ouverture de session, vous pouvez ajouter un appel ssh-add comme ceci : Cliquez sur Systme Prferences Sessions Programme au dmarrage. Cliquez sur Ajouter . Entrez la commande ssh-add . la prochaine ouverture de session, vous devrez taper votre passphrase.

Le fichier de configuration du serveur SSH


Par dfaut, la configuration du serveur SSH (fichier /etc/ssh/sshd_config , dition via sudo comme il

5 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

se doit) d'Ubuntu est suffisante : PermitRootLogin yes Si ce n'tait pas sous Ubuntu ce serait une trs grosse faille de scurit, mais qui pourrait vouloir affecter un mot de passe root ? #Banner /etc/issue.net Vous pouvez dcommenter (c'est--dire enlever le # ) cette ligne. Effet : lorsque vous essayez de vous connecter votre serveur par SSH, le fichier /etc/issue.net est affich ( vous de le personnaliser). #MaxStartups 10:30:60 Vous pouvez aussi dcommenter cette ligne, effet : le 10 reprsente le nombre de connexions acceptes sans qu'un utilisateur ait russi s'identifier, si cela passe au dessus de 10, il y a 30 % de chances que les suivantes soient bloques, et ce pourcentage augmente linairement jusqu' 100 % lorsque le full est atteint, 60 connexions. Trs utile pour viter ce genre de dsagrment. AllowUsers alice bob Ligne ajouter, spcifie les logins des seuls utilisateurs (ici seuls Alice et Bob, pas Carole) autoriss se connecter. Idal pour ouvrir un compte FTP un ami tout en restreignant l'accs au Shell via SSH.

Utiliser SSH pour faire du SFTP (FTP scuris)


Vous pouvez utiliser MySecureShell

Tunnliser sa connexion internet par SSH avec l'aide de Squid


Tunnliser sa connexion web est trs utile dans quelques situations : l'admin du rseau o vous tes vous empche d'accder certains sites ; votre connexion web est peu ou pas scurise (wifi sans encryption ou par encryption wep). On va donc installer le serveur de mdiation Squid (serveur proxy, mandataire) sur une machine Ubuntu (qui sera le serveur) laquelle on accdera par une machine distante possdant un client SSH et un navigateur Web. Dans l'exemple prsent, ce sera un client sous Windows. On obtiendra alors un accs scuris un proxy distant (le serveur sous Ubuntu) qui se connectera aux sites web et renverra le rsultat votre navigateur. Premirement, il faut installer le programme Squid. Le paquet installer est squid. Normalement si tout se droule bien, Squid devrait tre fonctionnel. Il est probable qu'une erreur arrive car le programme de configuration n'arrivera pas trouver le nom d'hte de la machine. Il faut donc ouvrir le fichier de configuration de Squid et lui indiquer que la machine n'a pas de nom d'hte. On ouvre le fichier de configuration /etc/squid/squid.conf et on ajoute cette ligne : visible_hostname none Aprs l'enregistrement du fichier de configuration, vous pouvez normalement gnrer les rpertoires qui contiendront le cache de Squid par la commande :

6 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

sudo squid -z

Grce SSH, les connexions reues par Squid seront des connexions provenant du serveur lui-mme. Mais par dfaut, Squid n'accepte que les connexions loopback. On devrait alors quand mme ajouter une autorisation pour l'adresse IP non loopback (127.0.0.1) du serveur. Vous ouvrez donc le fichier de configuration et vous ajoutez ces deux lignes : acl ordi src 192.168.1.1 http_access allow ordi Dans l'exemple, ordi est le nom que j'ai donn la rgle et 192.168.1.1 est l'adresse IP locale de mon ordinateur. Vous pouvez donc maintenant dmarrer Squid par :
sudo squid start

ou le redmarrer par
sudo squid reload

Squid est normalement prt recevoir les connexions venant de la machine hte. Il faut premirement tlcharger PuTTY si vous ne l'avez pas dj. Il faut ensuite l'ouvrir et marquer l'adresse IP du serveur auquel on veut se connecter. Il faut aller dans l'onglet Tunnels , ajouter un source port , ici j'ai dcid que ce sera le 3128, et une destination, qui est ici l'adresse IP de mon serveur et le port cout par dfaut par Squid (3128) :

On clique sur Apply et on laisse puTTY tourner en fond. On va ensuite dans le navigateur web et on ajoute l'adresse IP loopback du client 127.0.0.1 et le port marqu dans Putty soit ici le 3128 comme proxy. Votre connexion web est maintenant scurise.

7 sur 8

22/04/2008 08:39

ssh - Documentation Ubuntu Francophone

http://doc.ubuntu-fr.org/ssh

Tunnliser sa connexion internet par SSH (sans Squid)


La partie prcdente consiste installer un proxy HTTP sur le serveur et de s'y connecter via SSH. Cependant, SSH lui-mme peut jouer le rle de proxy, ce qui vite l'installation d'un logiciel supplmentaire. Il n'y a en principe rien faire. Cette fonctionnalit est active par dfaut sous Ubuntu. Cette fois, le proxy est de type SOCKS ( prendre en compte lors de la configuration du navigateur) Sous Windows, avec Putty La configuration est la mme que dans la partie prcdente, sauf qu'il faut cocher la case "dynamic" (la case "destination" peut rester vide) Sous Linux (dont Ubuntu) Utiliser la commande ssh avec l'option -D :
ssh -D 4242 serveur

(4242 est le numro du port utilis)

Dlai lors de la connexion


Si vous avez un dlai de plusieurs secondes avant que la connexion SSH ne se fasse, essayez d'ajouter ceci votre fichier ~/.ssh/config
GSSAPIAuthentication no

Ceci dsactive l'identification par GSSAPI qui engendre parfois des dlais lorsqu'elle n'est pas utilise. (Source : http://www.refreshinglyblue.com/2007/5/18/long-delay-before-ssh-authentication)

Liens
Quelques liens en franais pour un complment d'information : SSH : Secure SHell sur math-linux.com http://www.commentcamarche.net/crypto/ssh.php3 http://www.labo-linux.org/articles-fr/mise-en-place-d-un-serveur-ssh/description-ssh http://www.openssh.com/fr/ http://ftp.traduc.org/doc-vf/gazette-linux/html/2006/129/lg129-D.html

Contributeurs : Manu (traduction), gauthier, Id2ndR, Ner0lph, Sploutch. ssh.txt Dernire modification: Le 21/04/2008, 11:25 par 212.99.95.132, 127.0.0.1 Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL

8 sur 8

22/04/2008 08:39

S-ar putea să vă placă și