Précédent | Sommaire | Index | Suivant


Chapitre 7 : utilisation de l'outil Plink de connexion en ligne de commande

Plink ( PuTTY Link ) est un outil de connexion en ligne de commande similaire à la commande Unix ssh. On l'utilise principalement pour des connexions automatisées, comme de permettre à CVS d'accéder ( de façon sécurisée ) à un référentiel situé sur une autre machine.

Si vous souhaitez ouvrir une connexion interactive dans une fenêtre de console, Plink n'est probablement pas ce dont vous avez besoin.


7.1. Lancement de Plink

Plink est une application en ligne de commande. Vous ne pouvez donc pas lancer Plink en double-cliquant sur son icône. Au lieu de cela, il faut ouvrir une fenêtre de console. Sous Windows 95, 98, et ME, cela s'appelle Commandes MS-DOS, et sous Windows NT, 2000, et XP, c'est Invite de commandes. Selon la version de Windows que vous utilisez, vous trouverez cela soit directement dans Démarrer / Programmes, soit dans Démarrer / Programmes / Accessoires.

Pour utiliser Plink, il faut que le répertoire contenant l'exécutable plink.exe soit listé dans votre variable d'environnement PATH, ou que ce soit le répertoire courant au moment où vous tapez la commande. Pour ajouter le répertoire de Plink dans votre variable PATH, tapez ceci dans la fenêtre de commandes :

set PATH=C:\répertoire\qui\contient\putty;%PATH%

Cela ne fonctionnera que jusqu'à que vous fermiez cette fenêtre de console. Pour que la modification de votre variable PATH soit permanente, sous Windows NT, 2000, et XP, allez dans l'onglet Avancé des propriétés du Poste de travail, ou de l'icône Système du panneau de configuration. Sous Windows 95, 98, et ME, il vous faudra modifier votre fichier AUTOEXEC.BAT pour y ajouter une commande set comme celle ci-dessus.


7.2. Utilisation de Plink

Voici une description des rudiments de l'utilisation de Plink pour les sessions interactives et les connexions automatisées.

Une fois que vous avez une fenêtre de console dans laquelle entrer des commandes, vous pouvez taper juste plink, sans rien d'autre, pour afficher un message d'aide concise. Cela vous indique la version de Plink que vous utilisez, et vous donne un bref résumé des options disponibles :

Z:\sysosd>plink
PuTTY Link: command-line connection utility
Release 0.60
Usage: plink [options] [user@]host [command]
       ("host" can also be a PuTTY saved session name)
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -ssh -telnet -rlogin -raw
            force use of a particular protocol
  -P port   connect to specified port
  -l user   connect with specified username
  -batch    disable all interactive prompts
The following options only apply to SSH connections:
  -pw passw login with specified password
  -D [listen-IP:]listen-port
            Dynamic SOCKS-based port forwarding
  -L [listen-IP:]listen-port:host:port
            Forward local port to remote address
  -R [listen-IP:]listen-port:host:port
            Forward remote port to local address
  -X -x     enable / disable X11 forwarding
  -A -a     enable / disable agent forwarding
  -t -T     enable / disable pty allocation
  -1 -2     force use of particular protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -m file   read remote command(s) from file
  -s        remote command is an SSH subsystem (SSH-2 only)
  -N        don't start a shell/command (SSH-2 only)
  -nc host:port
            open tunnel in place of session (SSH-2 only)

Une fois que ceci fonctionne, vous êtes prêt à utiliser Plink.


7.2.1. Utilisation de Plink pour l'ouverture de sessions interactives

Pour établir une simple connexion interactive sur une machine distante, tapez juste plink suivi du nom de la machine :

Z:\sysosd>plink flunky.exemple.com

Debian GNU/Linux 2.2 flunky.exemple.com
flunky login:

Vous devriez alors être en mesure de vous connecter et d'ouvrir une session comme en temps normal. Ce que renvoie la machine distante sera affiché tel quel dans la fenêtre de votre invite de commandes, qui n'interprétera probablement pas les codes de contrôle du terminal de la façon attendue par la machine distante. Ce qui fait que si vous utilisez des applications qui affichent en plein écran, par exemple, vous pouvez vous attendre à voir apparaître des caractères bizarres dans votre fenêtre. Les connexions en interactif comme cela ne sont pas le point fort de Plink.

Pour vous connecter avec un autre protocole, vous pouvez utiliser les options en ligne de commande -ssh, -telnet, -rlogin ou encore -raw. Pour établir une connexion SSH, par exemple :

Z:\sysosd>plink -ssh login.exemple.com
login as:

Si vous avez déjà configuré une session sauvegardée PuTTY, alors au lieu d'indiquer un nom de machine, vous pouvez mettre le nom de la session sauvegardée. Ceci vous permet d'utiliser de l'authentification par clé publique, d'indiquer un nom d'utilisateur, et d'utiliser la plupart des autres fonctionnalités de PuTTY :

Z:\sysosd>plink ma-session-ssh
Sent username "fred"
Authenticating with public key "fred@winbox"
Last login: Thu Dec  6 19:25:33 2001 from :0.0
fred@flunky:~$

Vous pouvez également utiliser l'option de ligne de commande -load pour charger une session sauvegardée ( voir à ce sujet la section 3.8.3.1 ). Si vous utilisez -load, que la session sauvegardée existe et qu'elle comporte l'indication d'un nom de machine distante, alors vous ne pouvez pas indiquer en plus un nom de machine, précédé ou non d'un nom d'utilisateur : il(s) serai(en)t interprétés comme faisant partie de la commande destinée à la machine distante.


7.2.2. Utilisation de Plink pour l'établissement de connexions automatisées

En général, Plink est utilisé avec le protocole SSH, pour vous permettre de « parler » directement à un programme s'exécutant sur la machine distante. Pour cela, vous devez vous assurer que Plink utilise bien le protocole SSH, ce que vous pouvez faire de différentes façons :

Il est rare que Plink soit lancé directement par l'utilisateur. Il est le plus souvent lancé automatiquement, par un autre processus. C'est la raison pour laquelle on ne souhaite généralement pas que Plink demande de taper un nom d'utilisateur ou un mot de passe.

Vous pouvez également souhaiter éviter l'apparition à l'écran des diverses invites interactives que Plink est susceptible d'afficher. En l'occurrence, Plink peut être amené à vous demander de vérifier et d'approuver la clé d'hôte de la machine à laquelle vous vous connectez, ou d'entrer un nom d'utilisateur, ou un mot de passe.

Pour éviter qu'on vous demande de vérifier et d'approuver la clé d'hôte d'une machine distante lorsque vous utilisez Plink pour vous y connecter de façon automatique, connectez-vous à cette même machine une première fois en manuel ( avec PuTTY ou Plink, au choix ), vérifiez la clé d'hôte ( voir à ce sujet la section 2.2 ), et tapez Yes pour ajouter la clé d'hôte dans la base de registres. Une fois que c'est fait, les commandes Plink destinées à cette même machine ne devraient pas provoquer l'apparition de cette demande de confirmation, à moins, bien sûr, que la clé d'hôte de la machine distante ne change.

Pour éviter qu'on vous demande un nom d'utilisateur, vous pouvez :

Pour éviter qu'on vous demande un mot de passe, le mieux à faire est certainement de mettre en place une authentification par clé publique ( pour une introduction générale à l'authentification par clé publique, veuillez vous reporter au chapitre 8 ). Là aussi, vous pouvez vous y prendre de deux façons différentes :

Une fois que vous avez fait tout cela, vous devriez être en mesure de lancer une commande à distance sur la machine serveur SSH, qui l'exécutera alors automatiquement, sans rien demander :

Z:\sysosd>plink login.exemple.com -l fred echo Bonjour, le monde !
Bonjour, le monde !

Z:\sysosd>

Ou alors, si vous avez sauvegardé une session, avec tous les détails enregistrés dedans :

Z:\sysosd>plink ma_session echo Bonjour, le monde !
Bonjour, le monde !

Z:\sysosd>

Vous pouvez alors configurer d'autres programmes pour qu'ils utilisent cette commande Plink et qu'ils s'adressent à Plink comme s'ils s'adressaient à un processus tournant sur la machine distante.


7.2.3. Options en ligne de commande de Plink

Plink reconnaît toutes les options en ligne de commande communes à tous les outils PuTTY. Veuillez vous reporter à la section 3.8.3 pour une description de ces options.

Plink supporte également certaines options en ligne de commande qui lui sont spécifiques, et qui sont décrites dans les sections ci-dessous :


7.2.3.1. -batch : désactiver toutes les invites interactives

Si vous ajoutez l'option -batch, Plink n'affichera jamais d'invite interactive pendant l'établissement de la connexion. Si la clé d'hôte de la machine distante est invalide, par exemple ( voir à sujet la section 2.2 ), alors la connexion sera simplement abandonnée, sans qu'il vous soit demandé ce qu'il y a lieu de faire.

Cela peut s'avérer commode lorsque Plink est utilisé dans des scripts batch : grâce à l'option -batch, si quelque chose ne va pas comme cela devrait, au moment de la connexion, le script batch se termine avec une erreur plutôt que de rester bloqué.


7.2.3.2. -s : pour lancer une commande à distante dans un sous-système SSH

Si vous ajoutez l'option -s, Plink transmet à la machine distante la commande indiquée après le -s comme étant le nom d'un 'sous-système' SSH et non une ligne de commande ordinaire.

Cette option n'a de sens qu'avec le protocole SSH-2.


7.3. Utilisation de Plink dans des fichiers batchs et dans des scripts

Une fois que vous avez configuré Plink pour qu'il soit capable de se connecter à une machine sans vous poser de questions, et sans attendre de réponses de votre part ( voir à ce sujet la section 7.2.2 ), vous pouvez vous en servir pour tout un tas de scripts. Par exemple, pour lancer une sauvegarde sur une machine distante, vous pourriez utiliser une commande comme celle-ci :

plink root@mon_serveur /etc/sauvegardes/lancer-sauvegarde.sh

Vous pourriez aussi vouloir récupérer toutes les lignes, dans un fichier de log système, qui se rapportent à un sujet particulier :

plink ma_session grep /~fred/ /var/log/httpd/access.log > fredlog

En fait, toute commande non interactive, que vous pouvez lancer en ligne de commande sur la machine distante, peut faire l'objet d'un script lancé avec Plink de cette manière.


7.4. Utilisation de Plink avec CVS

Pour utilisez Plink avec CVS, vous devez donner à la variable d'environnement CVS_RSH le chemin complet d'accès à Plink :

set CVS_RSH=\chemin\de\plink\plink.exe

Vous devez aussi faire le nécessaire pour pouvoir vous connecter à une machine distante ( le serveur CVS, en l'occurrence ) de façon entièrement automatisée, comme cela est décrit dans la section 7.2.2.

Vous devriez alors être en mesure de lancer CVS comme ceci :

cvs -d :ext:nom_utilisateur@nom_session:/emplacement/du/référentiel co module

Et si vous avez indiqué un nom d'utilisateur dans votre session sauvegardée, vous n'avez même pas besoin d'en mettre un après :ext:, ni de mettre d'arobace, et vous pouvez juste taper :

cvs -d :ext:nom_session:/emplacement/du/référentiel co module


7.5. Utilisation de Plink avec WinCVS

Plink peut également être utilisé avec WinCVS. Tout d'abord, faites le nécessaire pour que Plink puisse se connecter à une machine distante de façon non interactive, comme cela est décrit dans la section 7.2.2. Une fois que c'est fait, dans WinCVS, allez dans la boîte de dialogue Preferences, que vous trouverez dans le menu Admin, et allez dans l'onglet Ports. Cochez la case Check for an alternate rsh name. Dans la zone de saisie de texte à droite, saisissez le chemin complet pour accéder à plink.exe, et faites OK pour refermer la boîte de dialogue 'Preferences'.

Ensuite, choisissez Command Line dans le menu Admin de WinCVS, et tapez une commande CVS comme dans la section 7.4. Exemple :

cvs -d :ext:nom_utilisateur@nom_machine:/chemin/pour/accéder/au/référentiel co nom_module

ou alors, si vous utilisez une session sauvegardée :

cvs -d :ext:nom_utilisateur@nom_session:/chemin/pour/accéder/au/référentiel co nom_module

Sélectionnez le dossier dans lequel vous souhaitez placer votre copie de travail, grâce au bouton Change Folder, et cliquez sur OK pour emprunter votre module. Une fois que vos modules sont empruntés, WinCVS fera appel à plink pour réaliser vos opérations CVS depuis l'interface graphique.


Si vous souhaitez faire part aux auteurs de PuTTY de votre avis sur ce manuel, ou sur les outils PuTTY eux-mêmes, veuillez vous reporter à la page "Feedback" ( merci de leur écrire exclusivement en anglais ). Si vos remarques portent sur la traduction, merci de vous adresser directement au  traducteur, et non à l'équipe de développement.

[PuTTY release 0.60]

Valid HTML 4.01 Strict