Tp3 - TP SSH: 1 Introduction Et Premiers Pas
Tp3 - TP SSH: 1 Introduction Et Premiers Pas
Tp3 - TP SSH: 1 Introduction Et Premiers Pas
1
2 Assez des mots de passe ?
Lors de la connexion vers une machine distante, ssh demande à l’utilisateur son mot de
passe. Imaginez un administrateur système qui doit exécuter cette opération plusieurs fois
par jour... Heureusement, de façon analogue à l’authentification des machines, un utilisateur
peut utiliser un couple de clés privée/publique pour s’authentifier auprès d’un serveur.
2
d’avoir à taper un mot de passe à l’aide d’une paire de clés, mais maintenant on doit taper une
passphrase ! Mais on a quand même amélioré la sécurité. Pourquoi ? (Quelles données passent
par le réseau ? Pourquoi est-ce notamment intéressant pour des ordinateurs portables ?)
Pour éviter d’avoir à retaper la passphrase à chaque connexion, on peut utiliser un agent
ssh qui va conserver dans un cache votre clé privée décryptée durant toute la durée de votre
session sur la machine cliente.
1. Tuez d’abord tout agent que gnome aurait lancé pour vous : killall ssh-agent
2. Initialisez l’agent ssh : eval ‘ssh-agent‘ (attention, ce sont des apostrophes inverses,
obtenues avec altgr-7)
3. Ajoutez votre clé au cache de l’agent : ssh-add
4. Essayez de vous connecter sur une autre machine. Alors ?
5. Ouvrez une autre fenêtre de terminal. Connectez-vous sur une autre machine. Expli-
quez.
6. Essayez de vous connecter en cascade (i.e. un ssh à l’intérieur d’un autre ssh) sur
différentes machines. Est-ce que cela fonctionne toujours ?
Remarquez l’option -A.
3 Transferts de fichiers
Les commandes scp et sftp permettent de transférer des fichiers par l’intermédiaire de
ssh. Testez !
Essayez aussi de transférer un fichier entre deux ordinateurs distants tout en étant sur
un troisième.
En pratique, scp n’est pas très efficace pour transmettre de nombreux fichiers (option -r).
Expliquez comment la commande suivante fonctionne et l’importance de l’antislash devant
le ; :
tar c myproject | ssh monserveur cd foobar \; tar x
4 Affichage X distant
Comme vu au premier TP, le protocole ssh permet aussi d’exporter un affichage X11
vers votre machine cliente. Quelle option faut-il ajouter à la commande ssh ?
Essayez. Connectez-vous sur plusieurs machines en cascade. Est-ce que l’export de l’affi-
chage suit ?
De façon plus générale, le comportement de ssh peut être paramétré en créant un fichier
config dans le répertoire .ssh de votre machine client (man 5 ssh_config). Refaites les
dernières manipulations en utilisant cette fois le fichier de configuration.
3
5 Redirection de ports
Ssh peut aussi servir à transférer des données pour des services TCP/IP en utilisant
une redirection de port. Cela est le plus souvent utile pour accéder à un service qui n’est
disponible que depuis certaines machines internes.
Par exemple, un serveur tourne sur le port TCP 12345 de mcgonagall. Essayez de vous
y connecter en lançant depuis votre machine
nc mcgonagall 12345
Essayez directement depuis mcgonagall en utilisant
nc localhost 12345
Observez à l’aide de netstat que l’écoute n’est effectivement faite que pour l’adresse
localhost . Au passage, remarquez qu’avec l’option -n on obtient les adresses IP sous
forme numérique, et que 0.0.0.0 signifie * .
L’option -L de ssh permet de rediriger un port de votre machine vers le port local
12345 de mcgonagall (on appelle cela "pont SSH"). L’idée est qu’en donnant l’option
-L port:host:hostport, toutes les connexions que vous faites vers le port port de votre
propre machine sont redirigées par ssh, pour être effectuées depuis la machine à laquelle
ssh est connecté, vers la machine host et le port hostport. On utilise souvent en plus les
options -N et -f. Effectuez un tel pont, et connectez-vous ainsi depuis votre propre machine
via le pont SSH.
Refaites la même chose mais en mettant plusieurs machines entre mcgonagall et votre
machine.
Le serveur NNTP de l’université (news.u-bordeaux1.fr) n’est accessible sur le port 119
que lorsque l’on est à l’intérieur du réseau de l’université. Comment établir un pont pour
pouvoir connecter un client NNTP depuis l’extérieur ?
L’option -R est le dual de -L. Que fait-elle ? Faites un schéma.
Notez également que l’on peut ajouter à la volée des redirections de ports. Tapez <Entrée>~?
pour avoir une liste des commandes disponibles.
4
jaguar
mamachine mcgonagall
Une deuxième solution est d’effectuer une redirection de port : lancer un premier ssh vers
jaguar qui ouvre sur votre machine une redirection (disons sur le port 2222) vers le port
ssh de mcgonagall. Un simple ssh localhost -p 2222 depuis votre machine dans un autre
terminal suffit alors à se connecter au sshd de mcgonagall via jaguar.
mamachine jaguar mcgonagall
22
ssh sshd 22
2222
ssh sshd
Une troisième solution est d’utiliser ProxyCommand : dans votre ~/.ssh/config, ajoutez
les lignes suivantes :
Host monmcgonagall
ProxyCommand ssh jaguar.emi.u-bordeaux1.fr /bin/nc mcgonagall 22
Ces deux lignes indiquent que lorsque l’on lance ssh monmcgonagall, plutôt qu’ouvrir
une connection TCP, ssh va lancer un autre ssh vers jaguar, et faire exécuter nc dessus
pour établir la connection vers le port ssh de mcgonagall.
Mettez en œuvre ces trois solutions.
5
mamachine jaguar mcgonagall
22 22
ssh ssh sshd nc sshd