3. Utilisation de PuTTY¶
Ce chapitre constitue une introduction générale aux caractéristiques un peu plus avancées de PuTTY (par rapport à ce que nous avons vu dans le chapitre 2). Si vous recherchez des informations très détaillées, c’est probablement dans le chapitre 4 que vous les trouverez.
3.1. Pendant votre session¶
Une bonne partie de ce qui fait la complexité et la richesse fonctionnelle de PuTTY se trouve dans les panneaux de configuration (il s’agit ici de la fenêtre qui apparaît quand on lance PuTTY, avec ses différentes possibilités de réglages, pas du panneau de configuration de Windows). Une fois que vous vous serez familiarisé avec cela, et que vous aurez lancé une session, les choses devraient être relativement simples. Néanmoins, il reste encore quelques fonctionnalités bien utiles qui méritent le coup d’oeil. C’est ce que nous allons voir maintenant.
3.1.1. Copier/coller de texte¶
Souvent, pendant une session PuTTY, vous verrez à l’écran du texte que vous souhaiterez réutiliser. Comme la plupart des autres émulateurs de terminaux, PuTTY vous permet de copier/coller ce texte plutôt que d’avoir à le retaper. Ces opérations de copier/coller utilisent le presse-papiers de Windows, ce qui vous permet de copier/coller des URL (par exemple) depuis votre session PuTTY vers un navigateur Web, ou de copier/coller depuis un traitement de texte ou un tableur vers une session PuTTY.
Dans PuTTY, le copier/coller fonctionne entièrement à la souris. Pour copier du texte dans le presse-papiers, il suffit de cliquer avec le bouton gauche de la souris dans la fenêtre de terminal, de garder le bouton enfoncé, et de déplacer la souris pour sélectionner du texte. Lorsque vous relâchez le bouton gauche, le texte est placé automatiquement dans le presse-papiers. Il n’y a pas besoin d’appuyer sur Ctrl-C ou Ctrl-Ins. En fait, si vous appuyez sur Ctrl-C, PuTTY va envoyer un caractère Ctrl-C depuis votre session PuTTY jusqu’au serveur, ce qui va probablement provoquer l’interruption d’un process.
Pour coller, il faut utiliser le bouton droit (ou le bouton du milieu, si vous avez une souris trois boutons et que vous l’avez configurée en ce sens, cf. section 4.11.2). Le fait d’appuyer sur Maj-Insert, ou de choisir ‘Paste’ dans le menu contextuel auquel on accède en faisant Ctrl + clic droit, a le même effet. Lorsque vous cliquez avec le bouton droit, PuTTY lit le contenu du presse-papiers de Windows, quel qu’il soit, et le colle dans votre session, exactement comme si ça avait été tapé au clavier (donc attention si vous collez du texte mis en forme dans un éditeur de texte qui fait de l’indentation automatique : les espaces présents dans le texte que vous collez vont s’ajouter avec ceux mis par l’éditeur de texte, pour l’indentation automatique, et semer le bazar dans votre fichier : PuTTY ne peut rien contre cela).
Si vous faites un double-clic avec le bouton gauche, PuTTY sélectionne un mot entier. Si vous faites un double-clic, que vous gardez le bouton gauche enfoncé au deuxième clic, et que vous déplacez la souris, PuTTY sélectionne un ensemble de mots entiers (vous pouvez configurer précisément ce que PuTTY considère comme faisant partie d’un mot : cf. section 4.11.5). Si vous faites un triple-clic, ou un triple-clic suivi d’un déplacement de la souris avec le bouton gauche enfoncé, alors PuTTY sélectionne une ligne entière ou un ensemble de lignes.
Si vous voulez sélectionner une zone rectangulaire plutôt que d’avoir une sélection qui s’étend jusqu’au bout de chaque ligne, il faut tenir la touche Alt enfoncée lorsque vous sélectionnez (vous pouvez aussi configurer PuTTY pour que les sélections soient rectangulaires par défaut, et qu’il faille au contraire maintenir la touche Alt enfoncée pour obtenir le mode de fonctionnement normal : pour plus d’infos à ce sujet, voir la section 4.11.4).
N.B. : dans certains environnements Unix, le fait de déplacer la souris avec le bouton gauche enfoncé, tout en appuyant sur la touche Alt, est intercepté par le gestionnaire de fenêtres, et peut vous empêcher de faire des sélections rectangulaires. Si c’est votre cas, essayez d’appuyer sur la touche Maj (Shift) en plus de la touche Alt pendant que vous déplacez la souris avec le bouton gauche enfoncé, et ça devrait le faire.
Si vous avez une souris à trois boutons, vous pouvez utiliser le bouton du milieu pour ajuster une sélection existante, si jamais ce que vous avez sélectionné ne correspond pas exactement à ce que vous vouliez. Et si vous avez configuré PuTTY pour coller avec le bouton du milieu, alors c’est le bouton droit qui sert à faire ces ajustements de sélection. Cliquez à l’écran (avec le bouton du milieu, ou avec le bouton droit, donc, selon le cas) : cela vous permet de prendre l’extrémité de la sélection qui est la plus proche de là où vous cliquez, et de la glisser/déposer ailleurs.
Il est possible que le serveur demande à gérer lui-même les clics de souris qui sont faits dans la fenêtre de PuTTY. Quand cela se produit, le pointeur de la souris prend la forme d’une flèche et les copier/coller à la souris ne fonctionnent plus, à moins d’appuyer sur la touche Maj (veuillez vous reporter aux sections 4.6.2 et 4.11.3 pour plus d’informations sur cette fonctionnalité et sur la manière de la configurer).
3.2. Création d’un fichier journal de votre session¶
Dans certains cas, il se peut que vous souhaitiez conserver la trace de tout ce qui s’affiche sur votre écran. Pour cela, rendez vous dans le panneau Logging (journalisation) de la boîte de dialogue de configuration.
Pour lancer l’enregistrement des traces de la session courante dans un journal de session, cliquez sur Change Settings, dans le menu système, et allez dans le panneau Logging. Choisissez un nom de fichier journal, et un mode d’enregistrement des traces (vous pouvez au choix garder trace de tout le trafic échangé entre PuTTY et le serveur, y compris les séquences de caractères de contrôle, ou seulement du texte imprimable, selon l’usage que vous prévoyez de faire de ces traces). Cliquez sur Apply et l’enregistrement des traces démarre immédiatement. Par la suite, vous pouvez revenir dans le panneau Logging et sélectionner Logging turned off completely pour arrêter l’enregistrement. Lorsque vous faites cela, PuTTY referme le fichier journal, et vous pouvez alors le lire à votre guise.
Pour plus de détails et d’options, veuillez vous reporter à la section 4.2.
3.3. Modification de la configuration de votre jeu de caractères¶
Si vous constatez que les caractères spéciaux, tels que les lettres accentuées, par exemple, ou les caractères semi-graphiques, ne s’affichent pas correctement dans votre session PuTTY, c’est peut-être que PuTTY interprète les caractères envoyés par le serveur en se basant sur un jeu de caractères incorrect. Il existe un grand nombre de jeux de caractères différents, donc c’est quelque chose de tout à fait possible.
Si vous cliquez sur Change Settings et que vous allez dans le panneau Translation [1], vous devriez y voir un grand nombre de jeux de caractères, parmi lesquels vous pouvez choisir, ainsi que d’autres options s’y rattachant. À partir de là, tout ce dont vous avez besoin, c’est de savoir lequel choisir (veuillez vous reporter à la section 4.10 pour plus d’informations).
3.4. Chiffrement du trafic X11 (“X11 forwarding” dans SSH)¶
Le protocole SSH sait faire transiter le trafic réseau issu des applications X Window par votre connexion SSH, en le chiffrant au passage. Vous pouvez donc faire tourner une application X sur le serveur auquel vous êtes connecté en SSH, et faire en sorte qu’il envoie ses affichages sur votre machine à vous, sans qu’aucun trafic X ne transite en clair sur le réseau.
Pour cela, il vous faut un serveur X sur votre machine Windows, tel que Cygwin/X, X-Win32, ou Exceed. Ce serveur X va vraisemblablement s’autoconfigurer en tant qu’affichage numéro 0 sur votre machine. Si ce n’est pas le cas, donc s’il utilise un autre numéro, vous devriez normalement trouver lequel dans la documentation du serveur X.
Une fois le serveur X installé et démarré sur votre machine, il faut que vous cochiez la case Enable X11 forwarding, dans le panneau Tunnels (cf. section 4.22) avant de vous connecter en SSH au serveur distant. La zone de texte X display location est vide par défaut, ce qui signifie que PuTTY va essayer de trouver lui-même la valeur appropriée (:0 par défaut, c’est la valeur la plus courante). S’il y a besoin de changer cette valeur, changez-la.
Maintenant, vous devriez être en mesure de vous connecter au serveur SSH normalement. Pour vérifier que le chiffrement du trafic X11 a été négocié avec succès lors de l’établissement de la connexion, vous pouvez regarder dans le journal d’événements de PuTTY (voir section 3.1.3.1). Vous devriez y trouver quelque chose dans ce genre :
2001-12-05 17:22:01 Requesting X11 forwarding
2001-12-05 17:22:02 X11 forwarding enabled
Si la machine distante est une machine Unix ou assimilé, vous devriez également pouvoir remarquer que la variable d’environnement DISPLAY a été modifiée, et qu’elle pointe maintenant le display 10, ou plus, sur le serveur SSH (le display par défaut est le 0) :
fred@unixbox:~$ echo $DISPLAY
unixbox:10.0
Si cela fonctionne, alors vous devez normalement pouvoir lancer des applications X via la connexion SSH, et voir leurs fenêtres s’afficher sur l’écran de votre PC.
Si vous avez besoin d’informations plus détaillées sur le chiffrement du trafic X11, veuillez vous reporter à la section 4.22.
3.5. Transfert de ports (“port forwarding”) dans SSH¶
Le protocole SSH sait rediriger des connexions réseau (TCP) arbitraires via une connexion SSH cryptée, ce qui évite que les informations ne circulent en clair. Par exemple, vous pourriez utiliser cela pour vous connecter, depuis chez vous, à un serveur POP-3 situé sur une machine distante, sans que votre mot de passe de messagerie ne puisse être intercepté à l’aide d’un sniffer réseau.
Pour faire du transfert de ports afin de vous connecter depuis votre machine locale à un port sur un serveur distant, il vous faut :
- d’abord, choisir un numéro de port local, sur votre machine à vous, sur lequel PuTTY doit se mettre à l’écoute des connexions entrantes. Il y a probablement plein de numéros de port disponibles au-delà de 3000 (vous pouvez aussi utiliser une adresse de loopback [2], voir ci-dessous pour plus de détails).
- ensuite, avant de vous connecter en SSH à la machine distante, allez dans le panneau Tunnels (cf. section 4.23). Assurez-vous que le bouton radio Local est bien sélectionné. Tapez le numéro de port local dans la case Source port. Tapez le nom d’hôte et le numéro de port à utiliser sur la machine distante dans la case Destination, en les séparant par un deux-points (exemple : popserver.exemple.com:110 pour vous connecter à un serveur POP-3).
- maintenant, cliquez sur Add. Votre nouveau transfert de port apparaît dans la liste, juste au dessus.
Une fois que c’est fait, vous pouvez vous connecter et vous loguer (le transfert de port ne sera activé qu’une fois que vous serez logué, parce que sans cela, il serait facile de lancer des attaques réseau complètement anonymes, et d’accéder à tout réseau privé virtuel). Pour vérifier que PuTTY a correctement mis en place le transfert de port, vous pouvez jeter un coup d’oeil au journal d’événements de PuTTY (voir section 3.1.3.1). Vous devriez y trouver quelque chose dans ce genre :
2001-12-05 17:22:10 Local port 3110 forwarding to
popserver.exemple.com:110
Maintenant, si vous vous connectez au numéro du port source sur votre PC local, vous devriez constater qu’il vous répond exactement comme s’il s’agissait du service qui s’exécute sur la machine de destination. Donc, dans cet exemple, vous pourriez maintenant configurer un client de messagerie de façon à ce qu’il utilise le port localhost:3110 comme serveur POP-3 au lieu de popserver.exemple.com:110 (bien entendu, la redirection prendra fin à la fermeture de votre session PuTTY).
Vous pouvez également rediriger des ports dans l’autre sens, c’est à dire faire en sorte qu’un numéro de port particulier de la machine serveur soit transféré vers votre PC comme s’il s’agissait d’une connexion de la machine distante à un service tournant sur votre PC. Pour faire cela, il vous suffit de sélectionner le bouton radio Remote plutôt que Local. Le champ Source port indiquera alors un numéro de port sur la machine serveur (N.B. : sur la plupart des serveurs, vous ne pourrez pas utiliser des numéros de port inférieurs à 1024).
Une autre façon de transférer des connexions locales vers des machines distantes consiste à utiliser un proxy SOCKS dynamique. Dans ce mode, PuTTY se comporte comme un serveur SOCKS, auquel les programmes compatibles SOCKS peuvent se connecter et auquel ils peuvent transférer des connexions vers la destination de leur choix, ce qui peut être une alternative aux longues listes de transferts statiques. Pour utiliser ce mode, il vous faudra choisir le bouton radio Dynamic au lieu du bouton radio Local, et ne rien mettre dans le champ Destination (si vous mettiez quelque chose, ce serait ignoré). PuTTY va alors se mettre à l’écoute de connexions SOCKS sur le port que vous aurez indiqué. La plupart des navigateurs web peuvent être configurés pour se connecter à ce service de proxy SOCKS. Vous pouvez également rediriger d’autres connexions PuTTY au travers de ce service en configurant de façon adéquate le panneau de configuration Proxy (veuillez vous reporter à la section \k{config-proxy} pour plus de détails à ce sujet).
Le port source d’une connexion transférée n’accepte généralement pas de connexions entrantes, excepté du client SSH, ou du serveur SSH lui-même (pour les transferts locaux et distants, respectivement). Il y a moyen de changer cela dans le panneau Tunnels :
- L’option Local ports accept connections from other hosts vous permet de configurer des transferts d’un port local vers un port distant (y compris des transferts de ports dynamiques) de telle façon que des machines autres que votre PC client puissent se connecter au port transféré.
- L’option Remote ports do the same fait de même pour les transferts de ports distants vers des ports locaux (si bien que des machines autres que la machine serveur SSH peuvent se connecter au port transféré). Notez que cette fonctionnalité n’est disponible que dans la version 2 du protocole SSH, et que tous les serveurs SSH-2 ne l’acceptent pas (dans OpenSSH, par exemple, cette possibilité est généralement désactivée par défaut).
Vous pouvez aussi indiquer une adresse IP à écouter. Typiquement, on peut demander à une machine Windows d’écouter sur n’importe quelle adresse IP unique dans la plage 127.*.*.*, ce qui correspond tout à des adresses loopback, accessibles uniquement à la machine locale. Donc, si vous redirigez, disons, 127.0.0.5:79 vers le port finger d’une machine distante, alors vous devriez pouvoir passer des commandes telles que finger fred@127.0.0.5. Ceci peut être utile si le programme qui se connecte au port transféré ne vous permet pas de changer le numéro de port qu’il utilise. Cette fonctionnalité est disponible pour les transferts de ports locaux vers des ports distants. SSH-1 ne sait pas le gérer pour les transferts de ports distants vers des ports locaux. SSH-2, lui, sait le faire en théorie, mais les serveurs ne se montrent pas toujours tous coopératifs.
(N.B. : si vous êtes sous Windows XP Service Pack 2, il se peut que vous ayez besoin d’appliquer un correctif Microsoft pour pouvoir utiliser des adresses IP telles que 127.0.0.5 - voir la question A.7.20)
Pour plus d’options relatives au transfert de ports, veuillez vous reporter à la section 4.25.
Si la connexion que vous transférez via SSH est elle-même une autre connexion SSH établie par une autre instance de PuTTY, l’option de configuration logical host name vous sera probablement utile pour indiquer à PuTTY quelle clé d’hôte il doit s’attendre à recevoir. Veuillez vous reporter à la section 4.13.5 pour plus d’informations à ce sujet.
3.6. Etablissement de connexions TCP brutes¶
De nombreux protocoles Internet utilisent des commandes et des réponses en texte simple. Par exemple, SMTP (le protocole qui sert à acheminer le courrier électronique), NNTP (qui sert à véhiculer les news Usenet), et HTTP (qui sert aux échanges entre les navigateurs et les serveurs Web), tous sont basés sur des commandes en texte brut, parfaitement lisibles.
Certaines fois, il peut être utile de se connecter directement à l’un de ces services et de « parler » le protocole directement, en tapant des commandes de ce protocole au clavier et en regardant les réponses. Sur les machines Unix, vous pouvez faire cela en utilisant la commande telnet pour vous connecter au numéro de port adéquat. Par exemple, si vous tapez telnet mailserver.exemple.com 25, vous pourrez parler directement au service SMTP qui tourne sur le serveur de messagerie.
Bien que la commande Unix telnet permette de faire cela, le protocole réellement utilisé n’est pas Telnet. En fait, ici, il n’y a pas de protocole à proprement parler. Les octets envoyés via la connexion sont exactement ceux que vous tapez au clavier, et les octets qui apparaissent à l’écran sont exactement ceux renvoyés par le serveur. La commande telnet d’Unix essaye de détecter ou de deviner si le service auquel elle s’adresse est un vrai service Telnet ou pas. PuTTY, lui, préfère qu’on le lui indique clairement.
Pour établir une connexion TCP brute à un service comme celui-ci, il vous suffit de sélectionner le quatrième nom de protocole, Raw, parmi les boutons Protocol dans le panneau de configuration Session (cf. section 4.1.1). Vous pouvez alors taper un nom d’hôte et un numéro de port, et établir la connexion.
3.7. Connexion à un port série local¶
PuTTY peut se connecter directement à un port série, à défaut de connexion réseau. Dans ce mode de fonctionnement, le texte tapé au clavier dans la fenêtre de PuTTY est envoyé tel quel par le port série de votre ordinateur, et les données reçues par ce port sont affichées telles quelles dans la fenêtre de PuTTY. Ce mode de fonctionnement peut s’avérer utile, par exemple, pour vous connecter à un ordinateur qui est relié au vôtre par le port série (avec un câble null modem).
Pour établir une connexion de ce type, il vous suffit de choisir Serial parmi les boutons radio Connection type dans le panneau de configuration Session (cf. section 4.1.1). Les champs Host Name et Port vont être remplacés par des champs Serial line et Speed, pour vous permettre de choisir le port série à utiliser (si votre machine en a plus d’un) et à quelle vitesse (en bauds) il faut transférer les données. Pour plus d’options de configuration (bits de données, bits de stop, parité, contrôle de flux), allez voir dans le panneau de configuration Serial (cf. section 4.25).
Une fois que vous aurez démarré PuTTY en mode série, il se peut que vous ayez à faire le premier pas, en envoyant quelque chose dans le « tuyau » pour signaler à la machine située à l’autre extrémité que quelqu’un veut lui parler. Cela dépend probablement de la machine : si vous démarrez une session PuTTY en mode série et que rien n’apparaît à l’écran, essayez d’appuyez deux ou trois fois sur la touche Entrée pour voir si cela fait quelque chose.
Dans une liaison série, il n’y a pas de façon clairement définie de signaler à la machine située à l’autre extrémité que la connexion est terminée. C’est pourquoi quand vous êtes connecté à une machine par le port série, PuTTY reste connecté jusqu’à ce que vous fermiez la fenêtre en cliquant sur le bouton de fermeture, en haut à droite, ou en faisant Alt-F4.
3.8. Utilisation de PuTTY en ligne de commande¶
PuTTY peut faire tout un tas de choses sans intervention de l’utilisateur si on lui passe des arguments en ligne de commande (dans une fenêtre d’invite de commandes, par exemple, ou au moyen d’un raccourci Windows).
3.8.1. Lancement d’une session en ligne de commande¶
Les options suivantes vous permettent de lancer PuTTY sans afficher la boîte de dialogue initiale, et de démarrer directement une session.
Pour se connecter à un serveur nommé nom_serveur, il suffit de taper :
putty.exe [-ssh | -telnet | -rlogin | -raw] [nom_utilisateur@]nom_serveur
Quand on lance PuTTY comme cela, les options de configuration prises en compte sont celles définies dans Default Settings (c’est à dire les réglages par défaut, cf. section 4.1.2). Le nom d’utilisateur nom_utilisateur indiqué en ligne de commande, si vous en tapez un, a priorité sur celui éventuellement indiqué dans les réglages par défaut. De même, vous pouvez spécifier un protocole, qui prendra le pas sur le protocole par défaut (voir à ce sujet la section 3.8.3.2).
Pour les sessions Telnet, vous pouvez aussi utiliser la syntaxe suivante (qui permet d’utiliser PuTTY pour ouvrir les URL telnet:// dans les navigateurs Web) :
putty.exe telnet://nom_serveur[:numero_port]/
Pour ouvrir une connexion sur un port série, par exemple COM1:, tapez :
putty.exe -serial com1
Pour lancer une session existante, sauvegardée, qui s’appelle nom_session, utilisez l’option -load (décrite dans la section 3.8.3.1) :
putty.exe -load "nom_session"
3.8.2. -cleanup¶
Quand on le lance avec l’option -cleanup, au lieu de démarrer normalement, PuTTY efface ses entrées dans la base de registres et supprime son fichier de « graine » pour le générateur de nombres aléatoires (après confirmation de l’utilisateur).
Veuillez noter que sur les systèmes multi-utilisateurs, l’option -cleanup n’efface que les entrées de base de registre et les fichiers correspondant à l’utilisateur qui est actuellement logué.
3.8.3. Options standard de la ligne de commande¶
Options standard de la ligne de commande
PuTTY et les outils associés acceptent un grand nombre d’options en ligne de commande, qui sont identiques d’un outil à l’autre, par souci de cohérence. Cette section énumère les options options disponibles dans tous les outils. Celles qui sont spécifiques à tel ou tel outil sont décrites dans la partie consacrée à cet outil.
3.8.3.1. -load : charge une session sauvegardée¶
L’option -load demande à PuTTY de charger les paramètres de configuration d’une session sauvegardée. Si un nom d’hôte figure dans ces paramètres, alors cette option est tout ce dont vous avez besoin pour démarrer une session PuTTY.
Attention de bien mettre le nom de session entre doubles quotes s’il contient des espaces.
Si vous souhaitez créer un raccourci Windows pour lancer une session PuTTY sauvegardée, c’est l’option qu’il vous faut. Votre raccourci devra appeler quelque chose du genre :
d:\\path\\to\\putty.exe -load "my session"
N.B. PuTTY lui-même accepte une autre forme de cette option, par souci de compatibilité ascendante. Si vous lancez putty @nom_session, cela aura le même effet que de faire putty -load “nom_session”. Avec la variante @, les doubles quotes ne sont plus nécessaires, et le caractère ‘@’ doit se trouver juste après le nom putty sur la ligne de commande (avec un espace entre les deux, quand même...). Cette variante de l’option -load est désormais obsolète.
3.8.3.2. Choix d’un protocole : -ssh, -telnet, -rlogin, -raw, -serial¶
Pour choisir le protocole avec lequel vous voulez vous connecter, vous avez le choix entre les options suivantes :
- -ssh sélectionne le protocole SSH
- -telnet sélectionne le protocole Telnet
- -rlogin sélectionne le protocole Rlogin
- -raw sélectionne le protocole ‘raw‘
- -serial sélectionne une connexion série
Ces options ne sont pas utilisables avec les outils de transfert de fichiers PSCP et PSFTP, qui ne fonctionnent qu’avec le protocole SSH).
Ces options en ligne de commande sont équivalentes aux boutons radio de sélection du protocole dans le panneau Session de la boîte de dialogue de configuration de PuTTY (cf. section 4.1.1).
3.8.3.3. -v : augmenter la verbosité¶
La plupart des outils PuTTY peuvent vous en dire plus sur leur fonctionnement qu’ils ne le font par défaut si vous les lancez avec l’option -v. Si vous rencontrez des problèmes lorsque vous essayez d’établir une connexion, ou simplement si vous êtes curieux, vous pouvez activer cette option. Peut-être trouverez-vous ainsi la réponse aux questions que vous vous posez.
3.8.3.4. -l : indiquer un nom d’utilisateur¶
Vous pouvez indiquer le nom d’utilisateur sous lequel vous souhaitez vous connecter sur la machine distante avec l’option -l. Par exemple, plink machine.exemple.com -l fred.
Cette option -l en ligne de commande revient à indiquer un nom d’utilisateur dans le champ Auto-login username dans le panneau Connection de la boîte de dialogue de configuration de PuTTY (cf. section 4.14.1).
3.8.3.5. -L, -R et -D : configuration des transferts de ports¶
Tout comme vous pouvez configurer des transferts de ports dans la boîte de dialogue de configuration de PuTTY (cf. section 4.23), vous pouvez aussi en configurer à partir de la ligne de commande. Les options de ligne de commande destinées à cela fonctionnent de la même manière que celles des programmes ssh sous Unix.
Pour rediriger un port local (le 5110, par exemple) vers une machine distante (mettons popserver.exemple.com, port 110), vous pouvez écrire quelque chose dans ce genre :
putty -L 5110:popserver.exemple.com:110 -load ma_session
ou alors :
plink ma_session -L 5110:popserver.exemple.com:110
À l’inverse, pour rediriger un port distant vers une destination locale, il suffit d’utiliser l’option -R au lieu de l’option -L :
putty -R 5023:mon_serveur_telnet.chezmoi.org:23 -load ma_session
ou :
plink ma_session -R 5023:mon_serveur_telnet.chezmoi.org:23
Pour indiquer une adresse IP correspondant à l’extrémité entrante du tunnel, il faut l’ajouter avant le nom de machine, dans les arguments :
plink -L 127.0.0.5:23:localhost:23 ma_machine
Pour mettre en place un transfert de port dynamique basé sur SOCKS sur un port local, utilisez l’option -D. Pour celle-ci, vous n’avez qu’à indiquer le numéro de port :
putty -D 4096 -load ma_session
Pour des informations générales sur le transfert de ports, veuillez vous reporter à la section 3.5.
Ces options ne sont pas disponibles dans les outils de transfert de fichiers PSCP et PSFTP.
3.8.3.6. -m : lire dans un fichier une commande ou un script à lancer sur la machine distante¶
L’option -m sert à la même chose que le champ Remote command dans le panneau SSH de la boîte de dialogue de configuration de PuTTY (cf. section 4.18.1), à cette différence près que l’option -m attend le nom d’un fichier local, et qu’elle lira la commande (ou le script) dans ce fichier.
Avec certains serveurs (en particulier sur les systèmes Unix), vous pouvez même mettre plusieurs lignes dans ce fichier et exécuter plusieurs commandes les unes à la suite des autres, ou un script shell complet, mais cela va au delà du fonctionnement normal, et il ne faut pas s’étonner si ça ne marche pas sur tous les serveurs. En particulier, il est de notoriété publique que cela ne fonctionne pas avec certains systèmes embarqués, comme les routeurs Cisco.
Ces options ne sont pas disponibles dans les outils de transfert de fichiers PSCP et PSFTP.
3.8.3.7. -P : indiquer un numéro de port¶
L’option -P sert à indiquer à quel numéro de port il faut se connecter. Si vous avez un serveur Telnet qui écoute sur le port 9696 d’une machine au lieu d’écouter sur le port 23, par exemple, tapez :
putty -telnet -P 9696 nom_machine
ou alors :
plink -telnet -P 9696 nom_machine
N.B. : cette option est plus utile avec Plink qu’avec PuTTY, parce qu’avec PuTTY, vous pouvez toujours taper putty -telnet nom_machine 9696.
Cette option équivaut au champ Port dans le panneau Session de la boîte de dialogue de configuration de PuTTY (cf. section 4.1.1).
3.8.3.8. -pw : indiquer un mot de passe¶
Une façon simple d’automatiser l’ouverture d’une session sur une machine distante consiste à mettre votre mot de passe dans la ligne de commande. Cette façon de faire n’est pas recommandée pour des raisons de sécurité. Si vous en avez la possibilité, nous vous conseillons plutôt de mettre en place une authentification par clé publique (veuillez vous reporter au chapitre 8 pour voir en détail comment procéder).
N.B. : l’option -pw ne fonctionne que quand vous utilisez le protocole SSH. En raison de limitations inhérentes à Telnet et Rlogin, ces protocoles n’acceptent pas l’authentification automatisée par mot de passe.
3.8.3.9. -agent et -noagent : contrôler l’utilisation de Pageant pour l’authentification¶
L’option -agent active l’authentification SSH par Pageant, et l’option -noagent la désactive. Ces options n’ont de sens que si vous utilisez SSH.
Veuillez vous reporter au chapitre 9 pour des informations générales au sujet de Pageant.
Ces options équivalent à la case à cocher Attempt authentication using Pageant dans le panneau Auth de la boîte de dialogue de configuration de PuTTY (cf. section 4.20.2).
3.8.3.10. -A et -a : contrôler le transfert d’agent¶
L’option -A active le transfert d’agent SSH, et -a le désactive. Ces options n’ont de sens que si vous utilisez SSH.
Veuillez vous reporter au chapitre 9 pour des informations générales au sujet de Pageant, et plus particulièrement à la section 9.4 en ce qui concerne le transfert d’agent. Notez qu’il y a un risque à faire cela, question sécurité (veuillez vous reporter à la section 9.5 pour plus d’informations à ce sujet).
Ces options équivalent à la case à cocher Allow agent forwarding dans le panneau Auth de la boîte de dialogue de configuration de PuTTY (cf. section 4.20.5).
Ces options ne sont pas disponibles dans les outils de transfert de fichiers PSCP et PSFTP.
3.8.3.11. -X et -x : contrôle du chiffrement du trafic X11¶
L’option -X active le chiffrement du trafic X11 dans SSH (le X11 forwarding*, comme on dit en bon français), et -x le désactive. Ces options n’ont de sens que si vous utilisez SSH.
Pour plus d’informations sur le chiffrement du trafic X11, veuillez vous reporter à la section 3.4.
Ces options équivalent à la case à cocher Enable X11 forwarding dans le panneau X11 de la boîte de dialogue de configuration de PuTTY (cf. section 4.22).
Ces options ne sont pas disponibles dans les outils de transfert de fichiers PSCP et PSFTP.
3.8.3.12. -t et -T : contrôler l’allocation de pseudo-terminal¶
L’option -t fait en sorte que PuTTY essaye d’allouer un pseudo-terminal au serveur, et l’option -T fait en sorte qu’il arrête cette allocation. Ces options n’ont de sens que si vous utilisez SSH.
Ces options équivalent à la case à cocher Don’t allocate a pseudo-terminal dans le panneau SSH de la boîte de dialogue de configuration de PuTTY ( cf. section 4.21.1 ).
Ces options ne sont pas disponibles dans les outils de transfert de fichiers PSCP et PSFTP.
3.8.3.13. -N : supprimer le lancement d’une invite de commandes ou d’une commande¶
L’option -N empêche PuTTY d’essayer de démarrer une invite de commandes ou une commande sur la machine distante. Cela peut vous être utile si vous n’utilisez une connexion SSH que pour faire du transfert de ports, ou si votre compte utilisateur sur la machine distante n’a pas la possibilité de lancer une invite de commandes.
Cette fonctionnalité n’est disponible que dans la version 2 du protocole SSH (la version 1 considère que vous voulez toujours obtenir une invite de commandes sur la machine distante).
Cette option a le même effet que la case à cocher Don’t start a shell or command at all dans le panneau SSH de la boîte de dialogue de configuration de PuTTY (cf. section 4.18.2).
Cette option n’est pas disponible dans les outils de transfert de fichiers PSCP et PSFTP.
3.8.3.14. -nc : établir une connexion réseau distante plutôt que de lancer une invite de commandes ou une commande¶
L’option -nc empêche Plink (ou PuTTY) d’essayer de lancer une invite de commandes ou une commande sur la machine distante. Au lieu de cela, Plink ou PuTTY vont demander à la machine distante d’ouvrir une autre connexion réseau à destination d’une troisième machine, avec un numéro de port que vous indiquez dans la commande, et de gérer cette connexion réseau comme si c’était la session principale.
Vous indiquez quels sont cette autre machine et ce port en argument de l’option -nc, avec un ‘:’ entre le nom de la troisième machine et le numéro de port, comme ceci :
machine1> plink machine2.exemple.com -nc machine3.exemple.com:1234
Cette fonctionnalité peut vous être utile si vous avez besoin d’établir une connexion SSH avec une machine cible que vous ne pouvez joindre qu’en passant par une machine proxy, et que vous préférez utiliser cette machine proxy en tant que telle plutôt que de recourir au transfert de ports (veuillez vous reporter à la section 4.15.1 pour plus d’informations au sujet des proxys locaux). Dans ce cas, vous pourriez choisir le type de proxy Local, mettre plink %machine_proxy -nc %machine_cible:%port comme commande de proxy local, indiquer le nom d’hôte de la machine cible dans le panneau Session, et le nom d’hôte de la machine proxy, qui est directement accessible, elle, dans le panneau Proxy.
Cette fonctionnalité n’est disponible que dans la version 2 du protocole SSH (la version 1 considère que vous voulez toujours obtenir une invite de commandes sur la machine distante). Elle n’est pas disponible dans les outils de transfert de fichiers PSCP et PSFTP, uniquement dans PuTTY lui-même, bien qu’elle ait peu de chances de servir à quoi que ce soit ailleurs que dans Plink. Enfin, l’option -nc se sert du même mécanisme que le transfert de ports, côté machine distante, donc elle ne fonctionnera pas si l’administrateur de la machine distante a désactivé le transfert de ports.
Le nom de cette option -nc provient du programme Unix nc, qui est lui-même une abréviation de netcat. Faire machine1> plink machine2 -nc machine3:port revient donc quasiment au même que de faire machine1> plink machine2 nc machine3 port, puisque cette variante appelle la commande nc sur la machine intermédiaire (machine2, ici), et lui demande de se connecter à la machine cible (machine3). Seule différence : l’option interne -nc de Plink n’a pas besoin, pour fonctionner, que le programme nc soit installé sur la machine intermédiaire.
3.8.3.15. -C : activer la compression¶
L’option -C active la compression des données envoyées par le réseau. Cette option n’a de sens que si vous utilisez SSH.
Cette option a le même effet que la case à cocher Enable compression dans le panneau SSH de la boîte de dialogue de configuration de PuTTY (cf. section 4.18.3).
3.8.3.16. -1 et -2 : spécifier la version du protocole SSH¶
Les options -1 et -2 forcent PuTTY à utiliser la version 1 ou la version 2 du protocole SSH. Ces options n’ont de sens que si vous utilisez SSH.
Les options équivalent à sélectionner la version du protocole SSH avec les boutons radio 1 only ou 2 only dans le panneau SSH de la boîte de dialogue de configuration de PuTTY (cf. section 4.18.4).
3.8.3.17. -4 et -6 : spécifier la version du protocole IP¶
Les options -4 et -6 forcent PuTTY à utiliser soit le ‘vieux’ protocole IPv4, soit le protocole plus récent IPv6 pour la plupart des connexions sortantes.
Ces options équivalent à sélectionner la version du protocole IP que vous préférez dans le panneau Connection de la boîte de dialogue de configuration de PuTTY (cf. section 4.13.4).
3.8.3.18. -i : spécifier une clé privée SSH¶
L’option -i vous permet d’indiquer le nom d’un fichier de clé privée au format *.PPK, que PuTTY utilisera pour l’authentification auprès du serveur. Cette option n’a de sens que si vous utilisez SSH.
Pour des informations générales au sujet de l’authentification par clé publique / clé privée, veuillez vous reporter au chapitre 8.
Cette option équivaut au champ Private key file for authentication dans le panneau Auth de la boîte de dialogue de configuration de PuTTY (cf. section 4.20.7).
3.8.3.19. -loghost : spécifier un nom d’hôte logique¶
Cette option outrepasse la façon habituelle dont PuTTY gère la mise en cache des clés d’hôte SSH, en lui indiquant le nom de l’hôte auquel vous voulez que votre connexion aboutisse au final (pour les cas où ce nom n’est pas le même que celui auquel PuTTY pense qu’il est en train de se connecter). Ce peut être un nom d’hôte seul, ou un nom d’hôte suivi de ‘:’ et d’un numéro de port. Veuillez vous reporter à la section 4.13.5 pour plus de détails à ce sujet.
3.8.3.20. -hostkey : spécifier manuellement une clé d’hôte attendue¶
Cette option outrepasse la façon habituelle dont PuTTY gère la mise en cache des clés d’hôte SSH, en lui indiquant exactement quelle clé d’hôte il doit attendre. Ce peut être utile si jamais l’endroit où PuTTY stocke normalement les clés d’hôtes dans la Base de registre est indisponible. Cette option attend comme argument soit une empreinte de clé d’hôte, soit un module [3] de clé publique SSH-2. Veuillez vous reporter à la section 4.19.3 pour plus d’information à ce sujet.
Vous pouvez utiliser cette option plusieurs fois si vous voulez que plusieurs clés soient acceptées.
3.8.3.21. -pgpfp : afficher les signatures des clés PGP¶
Cette option fait en sorte que les outils PuTTY, au lieu de se lancer normalement, affichent les signatures des clés PGP principales, pour aider à la vérification des nouvelles versions (veuillez vous reporter à l’annexe E pour plus d’informations à ce sujet).
3.8.3.22. -sercfg: spécifier la configuration du port série¶
Cette option indique les paramètres de configuration à utiliser pour le port série (vitesse en bauds, bits de stop, etc). Son argument est interprété comme une liste d’options de configuration séparées par des virgules, qui peuvent prendre les valeurs suivantes :
- Un chiffre unique compris entre 5 et 9 pour indiquer le nombre de bits de données.
- ‘1’, ‘1.5’ ou ‘2’ pour indiquer le nombre de bits de stop.
- Toute autre chaîne numérique est interprétée comme une vitesse exprimées en bauds.
- Une lettre minuscule pour indiquer la parité : ‘n’ pour pas de parité, ‘o’ pour parité impaire, ‘e’ pour parité paire, ‘m’ pour ‘marque’ et ‘s’ pour ‘espace’.
- Une lettre majuscule pour indiquer le contrôle de flux : ‘N’ pour aucun, ‘X’ pour XON/XOFF, ‘R’ pour RTS/CTS et ‘D’ pour DSR/DTR.
Par exemple, -sercfg 19200,8,n,1,N correspond à une vitesse de 19200 bauds, 8 bits de données, pas de parité, 1 bit de stop et pas de contrôle de flux.
3.8.3.23. -sessionlog, -sshlog, -sshrawlog : choisir la journalisation de la session¶
Ces options servent à demander à PuTTY et aux outils réseaux associés d’écrire dans un fichier journal. Chacun d’entre eux attend de recevoir un nom de fichier en argument. Par exemple -sshlog putty.log que les paquets SSH seront journalisés dans un fichier nommé ‘putty.log’. Les trois options permettent de choisir entre trois modes différents de journalisation, qui sont également accessibles depuis l’interface graphique :
- -sessionlog correspond au mode All session output.
- -sshlog correspond au mode SSH packets.
- -sshrawlog correspond au mode SSH packets and raw data.
Pour plus d’informations sur les options de journalisation, veuillez vous reporter à la section 4.2.
Notes du traducteur
[1] | Attention, en anglais, ‘translation‘ veut dire ‘traduction’ (rien à voir avec le mot français ‘translation’, qui est synonyme de déplacement). |
[2] | Normalement, il aurait fallu traduire « loopback » par « bouclage », mais le terme anglais est passé dans l’usage (désolé pour les puristes). |
[3] | La version originale de la documentation parlait de « SSH-2 public key blob ». Faute de savoir traduire le mot ‘blob’ dans ce contexte précis, je me suis tourné vers la traduction française de la RFC 4253 (paragraphe 6.6), dans laquelle Claude BRIERE DE L’ISLE a choisi de traduire ‘blob‘ par ‘module’. |