Table des matières

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).

Le super administrateur root et l'administrateur abuladmin ont interdiction de se connecter en ssh (configuration forte du fichier de configuration du serveur ssh). Utilisez donc un compte à votre nom avec les privilièges remotessh puis connectez-vous à ces comptes si vous en avez besoin avec su abuladmin, par exemple.

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

optioncommentaire
-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

commandecommentaire
ssh xxx.dip.abuledu.net -L post_surmonpc:ip_locale:port_localOuvre un port sur mon poste et le redirige
ssh xxx.dip.abuledu.net -L 8080:wifi-01:80permet d'aller sur l'interface de gestion de la borne wifi avec http://localhost:8080/
ssh xxx.dip.abuledu.net -L 8080:servecole:8082permet d'aller sur l'interface d'administration
ssh xxx.dip.abuledu.net -L 8080:imprimante-01:80permet d'aller sur l'interface de gestion de l'imprimante
ssh xxx.dip.abuledu.net -L 8080:switch-01:80permet 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.

Pensez à fermer et réouvrir votre session utilisateurs, certains services liés aux clés ssh prennent la main à l'ouverture de session et ne savent pas comment faire quand une clé est générée en cours de route

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 ~/.ssh
setfacl -b ~/.ssh/authorized_keys

Et ensuite vous pourrez utiliser votre clé ssh pour toutes vos connexion vers ce serveur …