Ssh

De Wiki de la communauté Mandriva.

Cette page est en cours de migration depuis la base de connaissances depuis {{{ http://club.mandriva.com/xwiki/bin/view/KB/SecureSssh }}} par [[.:Spip:. 2 mars 2008 à 11:11 (CET)]].
Si vous voulez contribuer, cliquez simplement sur l'onglet modifier. Consultez également les autres pages dont la forme est à réviser.
SSH fournit des connexions réseau cryptées et authentifiées.


Sommaire

Installation

Qu'est ce que SSH ?

Les services réseau usuels comme FTP, POP ou telnet sont pratiques mais intrinsèquement non sûrs puisqu'ils font tous transiter les données et les mots de passe en clair sur un réseau incroyablement peu sûr. Il est très facile d'intercepter les informations de ces services et de copier les données transférées. De plus, l'authentification du serveur est faible : les services sont à la merci d'attaques du type man-in-the-middle (un homme au milieu), où un intrus peut se faire passer pour le serveur et ainsi recevoir toutes les données que le client envoie.

Et voici SSH (Secure SHell). En utilisant SSH, le trafic est chiffré et vous rendez les attaques du type 'man-in-the-middle' presque impossibles. Cela vous protège aussi du DNS et de l'IP spoofing. En prime, il offre la possibilité de compresser le trafic et ainsi rendre les transferts plus rapides. SSH est un outil très souple : non seulement il remplace telnet, mais vous pouvez aussi créer un tunnel chiffré pour faire passer les services comme FTP, POP et même PPP.

Le SSH original a été développé par une société finlandaise. À cause de contraintes de copyright et des algorithmes brevetés, le monde du Logiciel Libre utilise maintenant OpenSSH, un système à la SSH.

Comme tout service, SSH s'appuie sur une architecture client-serveur. Tout administrateur système compétent utilise un serveur SSH. Si votre système hôte distant n'utilise pas SSH, vous devriez vraiment penser à changer pour un système qui l'utilise. Un site qui n'utilise pas un serveur SSH affiche un manque d'intérêt certain pour la sécurité.

SSH se présente en 2 versions partiellement incompatibles : 1.x et 2.x. Vous ne pourrez pas faire dialoguer un client SSH 2.x avec un serveur SSH 1.x. OpenSSH supporte les 2 versions.

Notez que la version 1 est dépréciée pour des raisons de sécurité.

Comment l'authentification de SSH fonctionne-t-elle ?

Vu du côté du client, SSH fournit 2 niveaux d'authentification.

Le premier niveau vous permet de vous connecter à un serveur à partir de n'importe quelle machine si vous connaissez le mot de passe d'un compte sur le serveur. Tout le trafic envoyé via SSH est chiffré, mais un mécanisme d'authentification forte n'est pas utilisé pour identifier l'hôte qui reçoit votre connexion. Un autre hôte pourrait intercepter votre connexion en se faisant passer pour le serveur que vous voulez joindre (attaque du type man-in-the-middle, voir Attaque de l'homme du milieuImage:Wikipedia-icon.png).

Le deuxième niveau s'appuie sur le mécanisme des clés : vous créez votre paire de clés et déposez votre clé publique sur le serveur. Maintenant si vous vous connectez au serveur SSH, le client envoie une demande d'authentification au serveur en utilisant vos clés. Le serveur récupère votre clé publique qui se trouve dans votre répertoire d'accueil (remote home dir) et compare les deux clés. Ensuite il envoie un challenge chiffré au client. Ce challenge est déchiffré par le poste client en utilisant la clé privée et est renvoyé au serveur. En utilisant cette méthode, vous devez connaître le mot de passe de votre clé (si vous avez choisi d'en utiliser un). Par rapport au premier niveau, ce mot de passe ne sera pas envoyé sur le réseau. L'authentification de niveau 2 n'utilise aucun mot de passe. retrouvez plus de détails sur ce mécanisme de clés dans l'article Gpg Ce procédé non seulement chiffre tout ce qui transite via SSH mais rend aussi impossible une attaque du type man-in-the-middle. La phase de login prend environ une dizaine de secondes.

Installer et tester OpenSSH

OpenSSH est désormais nativement installé sur Mandriva.

> (note perso : import à poursuivre. Spip)

Configuration des clés

Générer sa paire de clés

Générer et distribuer ses propres clés a deux avantages : vous vous protégez des attaques du style man-in-the-middle (e.g. une machine qui falsifie l'empreinte d'un hôte distant) et vous pouvez utiliser un mot de passe pour tous les serveurs auxquels vous vous connectez.

Souvenez-vous qu'il existe deux versions principales de SSH, partiellement incompatibles : la version 1 et la version 2. Bien que les serveurs SSH version 2 peuvent être configurés pour accepter les clés créées avec la version 1, il est préférable de créer deux paires de clés : une pour la version 1, l'autre pour la version 2. Puisque les noms des clés générées sont différents, ils peuvent être stockés dans le même répertoire et vous pouvez laisser le serveur sélectionner les clés qu'il veut.

Pour la version 1, la clé est générée par la commande :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-keygen

Pour la version 2, la clé est générée ainsi :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-keygen -t rsa

Des clés version 2 de type RSA, générées par cette commande, sont à préférer à des clés version 2 de type DSA.

La commande 'ssh-keygen' lance le dialogue suivant :

Generating public/private rsa key pair.
Enter file in which to save the key (/home/{user}/.ssh/id_rsa):

Appuyez simplement sur la touche ENTRÉE à moins que vous ayez déjà une autre clé avec ce nom, par exemple pour une version différente de SSH.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

La passphrase ne sera pas affichée à l'écran.

À noter !
La passphrase n'est pas récupérable. Si vous l'oubliez, vous devrez générer une nouvelle paire.
Your identification has been saved in /home/{user}/.ssh/id_rsa.
Your public key has been saved in /home/{user}/.ssh/id_rsa.pub.

ssh-keygen -t rsa réalise fondamentalement la même chose, mais sauvegarde la paire de clés dans les fichiers /home/{user}/.ssh/id_rsa (clé privée) et /home/{user}/.ssh/id_rsa.pub (clé publique). Vous pouvez utiliser la même passphrase pour les deux paires.

Maintenant vous avez une paire de clés : une clé publique que vous pouvez distribuer à tout le monde (enfin, toute personne susceptible de se connecter en ssh sur votre serveur), et une clé privée qui est le coeur du processus d'authentification. Cela veut dire : personne ne doit jamais pouvoir accéder à votre clé privée 1.1

La commande

Image:Konsole.png
[utilisateur@ordi ~]$ ls -l ~~/.ssh/identity

ou si utiliser la version 2 :

Image:Konsole.png
[utilisateur@ordi ~]$ ls -l ~~/.ssh/id_rsa

doit toujours afficher ces permissions :

-rw––-

Si vous pensez que votre clé privée a été compromise, n'hésitez pas à générer une nouvelle paire. Vous aurez alors à distribuer à nouveau votre clé publique évidemment.

Distribuer sa clé

Sur chaque serveur où vous voulez vous connecter en SSH, créez un sous-répertoire .ssh sous le répertoire personnel (HOME) du compte utilisé. Ensuite, copiez le fichier /.ssh/identity.pub de votre poste client sous le répertoire .ssh précédemment créé sur le serveur en le nommant authorized_keys. De la même façon pour la version 2, copiez /.ssh/id_rsa.pub et renommez-le en authorized_keys2. Maintenant lancez la commande suivante sur le serveur :

Image:Konsole.png
[root@ordi ~]# chmod 644 .ssh/authorized_keys .ssh/authorized_keys2

N'oubliez pas cette étape, car SSH refusera de marcher si les fichiers authorized_keys(2) sont accessibles en écriture par un autre utilisateur que vous 1.1

Les fichiers authorized_keys(2) peuvent contenir plus d'une clé publique, dans le cas où vous voudriez vous connecter au serveur à partir de plusieurs postes client. Dans ce cas, vous devrez générer une nouvelle paire de clés sur votre autre poste client, copier le contenu du fichier identity.pub en le collant dans le fichier authorized_keys. Bien sûr, vous ne devriez faire ça que si le compte sur le poste client vous appartient personnellement et que la clé est protégée par un mot de passe. De plus, n'oubliez pas de supprimer la paire de clés lorsque vous n'en avez plus besoin. Règle de base : il vaut mieux de ne pas employer une authentification à base de clés sur des machines qui ne méritent pas votre confiance ;-)

Conserver les clés dans la mémoire du système

Cette méthode est très pratique lorsque vous vous connectez régulièrement à plusieurs machines pendant une session. L'astuce est d'utiliser des applications à authentification automatique. Cela se fait grâce aux programmes ssh-add et ssh-agent

La commande

Image:Konsole.png
[utilisateur@ordi ~]$ man ssh-add

reads:

"L'agent d'authentification doit tourner et être parent du processus courant ssh-add pour fonctionner."

Heuh 1.1 ?

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-agent

exécute plusieurs commandes, crée un fichier PID et positionne quelques variables d'environnement système. Pour que cela fonctionne, on a besoin d'utiliser la commande shell eval

Image:Konsole.png
[utilisateur@ordi ~]$ eval $(ssh-agent)

Vous devriez voir un message du genre :

Agent pid {number}

Lancez la commande suivante :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-add

Dans le même terminal et la clé sera chargée en mémoire, après que vous ayez fourni votre mot de passe si la clé est protégée. Maintenant vous pouvez démarrer des sessions SSH à partir de ce terminal sans avoir à donner de mot de passe, à condition que vous ayez configuré correctement le fichier de configuration de SSH, tel que nous allons le voir un peu plus loin. La commande ssh-add ne charge que les clés de la version 1 de SSH par défaut. Pour charger les clés de la version 2, vous devez spécifier son fichier :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-add .ssh/id_rsa

Pour charger les clés des deux versions d'un seul coup, vous devez spécifier les deux fichiers :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-add .ssh/identity .ssh/id_rsa

Si vous voulez que ssh-agent soit parent de tous les terminaux virtuels d'une session, ajoutez la commande eval $(ssh-agent) à vos fichiers personnels de démarrage du serveur X, c'est à dire soit le fichier /.xinitrc si vous démarrez X à partir d'une console, soit le fichier /.xsession si vous démarrez directement sous X. Ensuite exécutez la commande

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-add

et tous les terminaux que vous ouvrirez pendant la session seront authentifiés. Notez que cela n'est pas nécessaire pour les versions de Mandrakelinux 7.1 et ultérieures si vous démarrez directement sous X : le fichier /etc/X11/Xsession lance automatiquement l'agent si une clé SSH se trouve dans le répertoire ~/.ssh de l'utilisateur. D'autres options utiles sont :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-add -l

liste les clés déjà en mémoire

Image:Konsole.png
[utilisateur@ordi ~]$ ssh-add -d

supprime une identité chargée en mémoire

Configuration

Configurer le client

OpenSSH dispose de 3 niveaux de configuration :

  1. les options sur la ligne de commande
  2. le fichier de configuration de l'utilisateur
  3. le fichier de configuration global à tout le système (/etc/ssh/ssh_config).

Les options fournies sur la ligne de commande prévalent sur les options des fichiers de configuration, les options du fichier de configuration de l'utilisateur prévalent sur celles du fichier de configuration globale. Toutes les options de la ligne de commande ont un équivalent dans les options du fichier de configuration. Puisqu'il n'y a pas de fichier de configuration utilisateur installé par défaut, copiez le fichier /etc/ssh/ssh_config en le renommant ~~/.ssh/config via la commande

Image:Konsole.png
[utilisateur@ordi ~]$ cp /etc/ssh/ssh_config ~~/.ssh/config

(ou éditez directement le fichier /etc/ssh/ssh_config sous root).

Le fichier de configuration standard ressemble à :

{De nombreuses explications et les options possibles sont fournies au début du fichier de configuration} ~# Soyons parano par défaut 1.1 Host * ~ForwardAgent no ~ForwardX11 no ~FallBackToRsh no

{La commande man ssh

fournit des explications sur les options disponibles dans le chapitre CONFIGURATION FILES}.

Le fichier de configuration est lu séquentiellement, i.e. la première règle valide 'gagne'. Supposons que vous ayez un compte sur www.foobar.com et que votre compte soit 'bilbo'. De plus vous souhaitez utiliser la combinaison 'ssh-agent' - 'ssh-add' ainsi que la compression de données pour accélérer les transferts. Et puisque vous êtes trop fainéant pour saisir le nom complet du serveur à chaque fois, vous voulez utiliser la chaîne 'fbc' à la place de 'www.foobar.com'. Votre fichier de configuration pourrait ressembler à :

Host fbc ~HostName www.foobar.com User bilbo ~ForwardAgent yes Compression yes ~# Soyons parano par défaut 1.1 Host * ~ForwardAgent no ~ForwardX11 no ~FallBackToRsh no

La prochaine fois que vous utiliserez la commande

Image:Konsole.png
[utilisateur@ordi ~]$ ssh fbc

SSH ira rechercher dans le fichier de configuration le nom complet de l'hôte et le nom de l'utilisateur ('bilbo') pour se connecter, et l'authentification utilisera la clé gérée par 'ssh-agent'. Ça ne peut pas être plus simple que ça, n'est-ce pas ? ;-)

Les connexions SSH vers les autres hôtes utiliseront toujours les options 'paranoïaques' par défaut. De même les autres comptes utiliseront les choix 'paranoïaques' si ils n'ont pas été explicitement désactivés dans leur fichier de configuration ou sur la ligne de commandes. Dans l'exemple précédent, une connexion SSH vers www.foobar.com aura les options suivantes activées : '~ForwardAgent' et 'Compression'. Les options '~ForwardX11' et '~FallBackToRsh' seront cependant désactivées à moins qu'elles ne soient surchargées par les arguments de la commande ssh.

D'autres options intéressantes sont :

 ~CheckHostIP yes 

Cette option permet un contrôle supplémentaire sur l'adresse IP par le serveur distant pour empêcher l'usurpation d'identité (DNS spoofing).

 ~CompressionLevel 

Le taux de compression varie de '1' (compression rapide) à '9' (meilleure réduction de volume). La valeur par défaut est '6'.

 ~ForwardX11 yes 

Vous aurez besoin de cette option pour exécuter localement des applications X distantes.

 ~LogLevel DEBUG 

Cette option est pratique lorsque vous avez des soucis avec la connexion SSH. Par défaut, le niveau est INFO.

Configurer le serveur

La configuration du serveur SSH est faite via le fichier /etc/ssh/sshd_config. Des explications sur les options sont fournies dans le fichier. La commande man sshd peut aussi être utilisée. Remarquez que OpenSSH utilise le même fichier de configuration pour SSH 1.x et 2.x.

À noter !
Le tutoriel d'installation, de configuration et de test d'un serveur sshd est disponible sur la page sshd

Parmi les options par défaut, vous devriez regarder de plus près :


~PermitRootLogin yes

Un choix préférable pourrait être

~PermitRootLogin without-password

ce qui désactive la possibilité de se connecter sous root à partir de machines sans clé connue. Mettre cette option à 'no' désactive totalement le possibilité de se connecter directement sous root. Vous devez alors utiliser la commande su à partir du compte d'un utilisateur pour vous connecter sous root.


X11Forwarding no

Mettez cette option à 'yes' pour permettre aux utilisateurs d'exécuter des applications X sur votre serveur. Notez que désactiver cette option n'améliore pas la sécurité de votre serveur puisque "les utilisateurs peuvent toujours installer leur propre 'forwarder'"(pour plus d'info, utilisez la commande man sshd


 ~PasswordAuthentication yes

Mettez cette option à 'no' pour forcer SSH à utiliser le mécanisme des clés lors du login. Cela pourrait géner les utilisateurs qui se connectent fréquemment à partir de machines différentes mais c'est une grosse amélioration de la sécurité puisque l'authentification basée sur les mots de passe est considérée faible.


# Subsystem       sftp    /usr/lib/ssh/sftp-server 

Supprimez le caractère dièse (#) du début de la ligne pour permettre d'utiliser 'sftp', une version sécurisée du serveur FTP (utilisation d'un tunnel SSH). Connaissant l'habitude des utilisateurs envers FTP et la lourdeur de la commande 'scp', cela vaut la peine de fournir 'sftp'. De plus, l'interface graphique populaire gftp supporte les transferts par 'sftp' depuis la version 2.07 (ce qui cache les fonctionnalités manquantes de 'sftp').

Copier des fichiers

Copier des fichiers avec scp

SSH vous donne accès à un ensemble de commandes et à un shell sur une machine distante. SSH ne vous permet pas directement de copier des fichiers, mais il fournit la commande scp. Supposons que vous vouliez copier un fichier appelé dumb à partir du répertoire courant de votre poste client (machine locale) vers votre répertoire d'accueil (home) sur le serveur distant appelé www.foobar.com. Votre compte sur la machine distante est bilbo. La commande de copie de fichier sera :

Image:Konsole.png
[utilisateur@ordi ~]$ scp dumb bilbo@www.foobar.com:.

Inversement, pour copier le fichier du serveur vers votre machine locale :

Image:Konsole.png
[utilisateur@ordi ~]$ scp bilbo@www.foobar.com:dumb .

La commande scp appelle SSH pour réaliser le login, copie le fichier et appelle SSH à nouveau pour fermer la connexion.

Si votre fichier de configuration ~~/.ssh/config contient déjà les données sur votre compte www.foobar.com comme ceci :

Host *fbc ~HostName www.foobar.com User bilbo ~ForwardAgent yes

alors vous pouvez remplacer bilbo@www.foobar.com par fbc ainsi :

Image:Konsole.png
[utilisateur@ordi ~]$ scp dumb fbc:.

'scp' suppose que votre répertoire d'accueil sur le serveur est votre répertoire de travail courant. Ainsi, si vous utilisez des chemins relatifs pour la machine distante, ils doivent être relatifs par rapport au répertoire d'accueil. En utilisant le commutateur

-r

de scp, vous pouvez copier récursivement des répertoires. 'scp' vous permet aussi de copier des fichiers entre machines distantes.

Maintenant vous êtes peut-être tenté d'essayer quelque chose comme ça : vous ouvrez une connexion SSH vers www.foobar.com, puis une fois connecté, vous lancez la commande

Image:Konsole.png
[utilisateur@ordi ~]$ scp {local user}@{local machine}:dumb
.

pour copier le fichier local dumb vers le serveur sur lequel vous êtes connecté. Très probablement vous obtiendrez le message suivant :

ssh: secure connection to {local machine} refused

Ce qui c'est passé est que vous avez exécuté la commande 'scp' à partir du serveur distant, et cette commande a essayé de se connecter à un serveur SSH sur votre machine … Souvenez-vous qu'il faut exécuter 'scp' à partir d'un terminal local à moins que votre machine ne fasse tourner aussi un serveur SSH 1.1

Copier des fichiers avec sftp

Si vous préférez une approche 'à-la-FTP', essayez sftp. La commande sftp établit une connexion FTP dans un tunnel SSH vers un serveur et vous donne accès à la plupart des commandes FTP standard. En cadeau bonux, 'sftp' vous permet d'exécuter des programmes à distance via la commande exec. Depuis la version 2.0.7, le client graphique gftp supporte les transferts sftp, ce qui comble quelques limitations de sftp.

Si le serveur distant ne propose pas de serveur sftp, copiez simplement l'exécutable '/usr/lib/ssh/sftp-server' sous votre répertoire d'accueil (ou sous un répertoire accessible et inclus dans votre $PATH), 'sftp' l'activera automatiquement lors de la connexion : vous n'avez besoin d'aucune permission spéciale sur le serveur distant.

Copier des fichiers avec rsync

rsync, l'outil immensément utile pour copier, mettre à jour et supprimer des fichiers locaux et distants, peut être aisément utilisé avec SSH en ajoutant l'option

-e ssh

Je ne l'utilise pas personnellement ;-). L'un des avantages de rsync est qu'il ne transfert que les différences entre les fichiers. Le fichier complet n'est transféré que si il n'existe pas sur le système cible. De plus il offre une méthode très efficace pour compresser les données et donc rendre les transferts plus rapides.

Copier des fichiers en utilisant un tunnel FTP

Si vous voulez vraiment utiliser votre client FTP traditionnel, attachez votre ceinture ;-) SSH permet à tous les protocoles d'utiliser un tunnel, FTP compris. Cependant FTP est un protocole un peu bizarre (il a besoin de 2 ports) et les résultats peuvent varier d'un serveur à un autre et d'un client à un autre. Si votre client FTP ne permet pas de se connecter à un port pré-défini, vous pouvez l'oublier tout de suite.

L'expression magique est port forwarding. Vous transmettez un numéro de port local non privilégié (i.e. un port > 1024) à un serveur distant, et puis vous vous connectez à la machine locale. Vous trouvez ça compliqué ? Et bien, ça l'est. Et je ne peux guère vous aider puisque je n'ai jamais réussi à le faire marcher. L'idée de base est de transmettre un numéro de port, forker SSH en arrière plan et l'occuper avec une commande sans intérêt pour maintenir le canal ouvert :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh {user@remote host} -f -L 1234:{remote host}:21 tail -f /etc/motd

Maintenant démarrez un client FTP, et demandez-lui d'utiliser le numéro de port précédemment transmis :

Image:Konsole.png
[utilisateur@ordi ~]$ lftp -u {user name} -p 1234 localhost

Alors que les commandes comme cd fonctionnent, les commandes comme ls ou get se bloquent ou affichent de mystérieux messages d'erreur … ou les deux.

Il y a plusieurs programmes qui essaient de pallier ce problème : ftpsshd et hsftp. Mais soit ils ne marchent pas, soit ils sont trop compliqués à utiliser.

À noter !
Pour transférer des fichiers, mieux vaut utiliser l'une des trois premières méthodes.

Tunneling

Tunneling Basics

L'utilisation d'un tunnel en SSH fonctionne en utilisant la méthode du transfert de port (port forwarding) : vous établissez une connexion entre un port local non priviligié (>1024) et le port qui est utilisé par le service à mettre dans le tunnel sur la machine distante (regardez le fichier '/etc/services' pour connaître la liste des ports standard). Ensuite vous vous connectez sur le port local. Toutes les requêtes à distination du port local sont alors transmises vers le port distant par SSH et donc sont cryptées. L'utilisation d'un tunnel ne fonctionne que si l'hôte distant fait tourner un serveur SSH évidemment. Pour savoir si un serveur distant propose SSH, utilisez la commande telnet sur le port 22 :

Image:Konsole.png
[utilisateur@ordi ~]$ telnet {nom complet du serveur distant} 22

Vous devriez recevoir un message donnant la version du serveur SSH. Par contre, si vous obtenez un message comme celui-là :


telnet: Unable to connect to remote host: Connection refused

cela veut dire que l'hôte ne fait pas tourner de serveur SSH.

La syntaxe du transfert de port est :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh -f {utilisateur@serveur distant} -L {port local}:{nom complet du serveur distant}:{port distant} {une commande}


Vous pouvez transférer plusieurs ports et vous pouvez configurer les ports fréquemment utilisés dans le fichier /.ssh/config en utilisant l'option '~LocalForward'. Vous pouvez aussi transférer des ports distants vers des ports locaux. Pour transférer des ports priviligiés (<1024), vous devez être root.

Tunneling POP

Vous pouvez utiliser le protocole Post Office (POP) pour récupérer vos emails stockés chez votre fournisseur de services de messagerie électronique (e.g. votre ISP, votre université ou votre employeur si l'accès est autorisé). Faire passer ce protocole dans un tunnel SSH devrait essentiellement empêcher les renifleurs réseau ('network sniffers') de capter votre mot de passe POP. Et en prime, vous pouvez utiliser la compression de données proposée par SSH pour rendre la récupération des messages plus rapide.

Supposons que vous ayez un compte POP sur pop.foobar.com, que votre nom d'utilisateur est 'bilbo' et que votre mot de passe POP est 'topsecret'. La commande pour établir un tunnel SSH serait alors :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh -f -C bilbo@pop.foobar.com -L 1234:pop.foobar.com:110 sleep 5

(Pour faire un test, vous pouvez augmenter la valeur du paramètre sleep à 500 - temps d'attente en secondes -).

Le message suivant vous invite à fournir votre mot de passe POP :

bilbo@pop.foobar.com's password: 

Après avoir donné votre mot de passe, utilisez la commande 'telnet' pour vous connecter sur le port de transfert :

telnet localhost 1234

Vous devriez alors recevoir un message de type READY de la part de votre serveur de courriers.

Évidemment cette méthode vous oblige à fournir manuellement toutes les commandes POP, ce qui est un peu inconfortable ;-) Pour automatiser la chose, utilisez Fetchmail Via SSL/SSH?.

Notez que le protocole IMAP utilise des ports différents : IMAPv2 utilise le port 143, IMAPv3 le port 220.

Tunneling X

Si vous voulez faire tourner des applications X via SSH sur votre machine locale, connectez vous sur votre compte distant, créez le fichier /.ssh/environment et ajoutez cette ligne :

XAUTHORITY=/home/{nom de l'utilisateur distant}/.Xauthority

Si le fichier .Xauthority n'existe pas sur votre compte distant, il sera créé automatiquement par SSH lors de la phase de login.

Déconnectez-vous et démarrez une session SSH ainsi :

Image:Konsole.png
[utilisateur@ordi ~]$ ssh -f -X -l {nom de l'utilisateur distant} {machine distante} xterm

Cela ouvrira un terminal xterm distant sur votre machine locale. Vous pouvez faire la même chose avec n'importe quelle autre application X dont vous avez l'autorisation d'exécuter sur la machine distante.

Tunneling VNC

Tunneling Linuxconf

Tunneling Webmin

Récupérée de « http://wiki.mandriva.com/fr/Ssh »
en recherche d’emploi ?