Ceci est une ancienne révision du document !
version-11-08 serveur-11-08 administrateur
SSH et Tunnels SSH
Avant tout
Pour vous connecter à distance sur un serveur AbulÉdu il faut utiliser un compte utilisateur membre du groupe remotessh ou remotessh-ldap (ça se fait via webadmin et l'outil de gestion des utilisateurs).
Connexion ssh classique
Pour se connecter en ssh, rien de compliqué:
ssh tom.pouce@ip_du_serveur
Si vous êtes à l'extérieur de l'école il faut connaître l'ip publique de l'école et l'utiliser … assurez vous également que la redirection des ports a été bien faite dans la configuration de la box ou du routeur conformément au document d'installation (phase 2 ssh).
Sous windows nous vous conseillons l'utilisation du logiciel libre putty.
Options pratiques de la ligne de commande ssh
option | commentaire |
---|---|
-X | Permet à des applications distantes graphiques de s'afficher localement (exemple system-config-printer) |
-C | Activer la compression du flux ssh |
-N | Désactiver l’exécution des commandes distantes (pratique pour les tunnels) |
-p | Permet de spécifier le port SSH à utiliser (si vous ne pouvez pas ouvrir le port 22) |
Exemple pour se connecter sur l'école dont l'ip est 147.210.34.2 avec l'utilisateur toto qui a le service SSH ouvert sur le port 22003 et où on souhaite lancer une application graphique et en activant la compression du flux ssh
ssh -X -C -p 22003 toto@147.210.34.2
Créer un tunnel ssh
Un peu en vrac, commentaires à améliorer
commande | commentaire |
---|---|
ssh xxx.dip.abuledu.net -L post_surmonpc:ip_locale:port_local | Ouvre un port sur mon poste et le redirige |
ssh xxx.dip.abuledu.net -L 8080:wifi-01:80 | permet d'aller sur l'interface de gestion de la borne wifi avec http://localhost:8080/ |
ssh xxx.dip.abuledu.net -L 8080:servecole:8082 | permet d'aller sur l'interface d'administration |
ssh xxx.dip.abuledu.net -L 8080:imprimante-01:80 | permet d'aller sur l'interface de gestion de l'imprimante |
ssh xxx.dip.abuledu.net -L 8080:switch-01:80 | permet d'aller sur l'interface de gestion du switch |
Remarque : la commande numéro 3 redirige le port 8082 de servecole sur le port 8080 local de l'ordinateur de l'utilisateur. Quand l'utilisateur saisira l'adresse
http://localhost:8080
c'est donc l'interface webadmin de servecole qui s'ouvrira.
Ne pas oublier en fin d'intervention de fermer le tunnel ssh en tapant logout
Tunnel inverse
ssh -R 21547:localhost:22 user@mon-serveur.adresse.org
Utilisation de clés ssh
Produire une clé SSH
Les 2 modes opératoires qui suivent sont destinés aux utilisateurs travaillant sous Linux.
Prérequis : Sur un système Linux, le paquet ssh-client doit être installé.
Ouvrir un terminal et taper les commandes suivantes
monlogin@mamachine:~$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/monlogin/.ssh/id_rsa): ⤶* Enter passphrase (empty for no passphrase): <phrase secrète> *⤶ Enter same passphrase again: <phrase secrète> *⤶* Your identification has been saved in /home/monlogin/.ssh/id_rsa. Your public key has been saved in /home/monlogin/.ssh/id_rsa.pub. The key fingerprint is: 02:e9:d1:00:c5:74:e9:99:46:1e:33:a4:f9:4f:a4:1b monlogin@mamachine The key's randomart image is: .../...
Le couple de clé est généré dans un répertoire caché dans votre HOME.
monlogin@mamachine:~$ ll ./.ssh total 8 -rw------- 1 monlogin monlogin 1766 2010-11-06 20:38 id_rsa -rw-r--r-- 1 monlogin monlogin 400 2010-11-06 20:38 id_rsa.pub
La clé publique est constituée par le fichier “id_rsa.pub”. C’est elle qui doit être transmise pour être intégrée au serveur
Notez que cette clé (le couple en fait) est lié à votre login et à la machine sur laquelle vous l’avez générée. Vous pouvez bien sûr déplacer votre clé privée sur une autre machine, mais mieux vaut dans ce cas générer la clé par rapport à un élément non lié à votre machine; votre e-mail.
Copiez votre clé SSH sur un serveur distant
ssh-copy-id login@serveur
Vérifiez les droits du fichier côté serveur et éventuellement supprimer les ACL (si serveur abuledu)
setfacl -b ~login/.ssh setfacl -b ~login/.ssh/authorized_keys
Et ensuite vous pourrez utiliser votre clé ssh pour toutes vos connexion vers ce serveur …