Table of Contents
SSH, bien plus qu'un shell distant
Midi de la bidouille
3 février 2015
Guillaume Cassonnet - INRIA Bordeaux Sud-Ouest
guillaume.cassonnet@inria.fr
1 Tunnels SSH
1.1 Redirection locale (LocalForward)
Redirection d'un port TCP de la machine "locale" (client SSH) vers un port TCP accessible par la machine "distante" (serveur SSH).
1.1.1 Ligne de commande : option -L
ssh madestination -L 12345:192.168.1.10:8000
1.1.2 .ssh/config : LocalForward
#
Exemple de configuration
Host madestination-monservice
HostName madestination
LocalForward 12345 192.168.1.10:8000
1.1.3 On peut maintenant se connecter à localhost:12345 de la machine "locale"
1.2 Redirection distante (RemoteForward)
Redirection d'un port TCP de la machine "distante" (serveur SSH) vers un port TCP accessible par la machine "locale" (client SSH).
1.2.1 Ligne de commande : option -R
ssh madestination -R 23456:172.17.0.5:80
1.2.2 .shh/config : RemoteForward
#
Exemple de configuration
Host madestination-unautreservice
HostName madestination
LocalForward 23456 172.17.0.5:80
1.2.3 On peut maintenant se connecter à localhost:23456 de la machine "distante"
1.3 Redirection dynamique (DynamicForward)
Création d'un "proxy SOCKS" permettant de rediriger le traffic des applications compatibles vers la machine "distante" (serveur SSH).
1.3.1 Ligne de commande : option -D
ssh madestination -D 34567
1.3.2 .ssh/config : DynamicForward
#
Exemple de configuration
Host madestination-socks
HostName madestination
DynamicForward 34567
1.3.3 On peut maintenant configurer les applications compatibles SOCKS pour utiliser localhost:34567 de la machine "locale".
2 Connexion à distance
2.1 Rebond (ProxyCommand)
Permet de configurer un rebond SSH dans le fichier de configuration pour accéder à une machine distante en une seule commande.
2.1.1 .ssh/config
#
Exemple de configuration
#
Dans cet exemple, madestination est accessible par rebond sur machineaccessible
Host madestination-inaccessible
HostName madestination
Port 22
ProxyCommand ssh machineaccessible nc %h %p
2.1.2 On peut maintenant se connecter à madestination en utilisant "ssh madestination-inaccessible"
3 Transfert de fichiers avec SSH
3.1 SCP
SCP est similaire à "cp", par SSH. Il est cependant limité.
3.1.1 Ligne de commande
#
Générique
scp source destination
#
Envoi de fichier
scp fichier madestination:chemin
#
Récupération de fichier
scp madestination:chemin .
3.1.2 scp utilise le fichier de configuration .ssh/config
3.2 RSYNC
Le puissant outil de synchronisation RSYNC est compatible SSH.
3.2.1 Ligne de commande
#
Générique
rsync -av source destination
#
Synchronisation depuis une machine "distante"
rsync -av madestination:chemin cheminlocal
#
Synchronisation vers une machine "distante"
rsync -av cheminlocal madestination:chemin
3.2.2 rsync utilise le fichier de configuration .ssh/config
3.3 SSHFS (FUSE)
SSHFS est un système de fichier en espace utilisateur (FUSE) et permet l'arborescence de la machine "distante" sur la machine "locale".
3.3.1 Ligne de commande
#
Effectuer le montage
sshfs madestination:chemin pointdemontage
#
Démontage
fusermount -u pointdemontage
3.3.2 Dans /etc/fstab
#
Options à personnaliser (options longues dans man sshfs)
sshfs#utilisateur@madestination:/chemin /pointdemontage fuse defaults,user,users 0 0
#+ENDVERSE