*Title: Howto Système *Author: Ni * Serveur robot Lampion est le serveur du robot. C'est là que l'on regroupe toutes les informations du robot. Pour ouvrir un compte envoyez un mail à |schodet| ou essayez de m'attraper à proximité d'un ordinateur. Pour se connecter au serveur : ssh robot.assos.efrei.fr Merci de ne pas laisser traîner des données inutiles sur son compte et de faire le ménage de temps en temps. ** Clef ssh Il y a plusieurs moyen de s'authentifier auprès d'un serveur ssh. La plus commune est le mot de passe, ou le mot de passe est envoyé au serveur sous forme cryptée. La plus "mieux", c'est la la clef ssh. Le système est basé sur une clef publique et clef privée. La clef publique est communiquée aux serveurs auquel on souhaite accéder, la clef privée, comme son nom l'indique, on la garde précieusement. Pour générer ces clefs, on utilise (lisez tout avant de taper la commande) : ssh-keygen -t rsa Il suffit de se laisser guider pour créer la clef. Elles sont stockées dans |.ssh/id_rsa| et |.ssh/id_rsa.pub|. N'envoyez jamais votre clef privée ! Quand on essaye de se connecter à un serveur, le serveur encrypte une chaîne aléatoire avec la clef publique qu'il possède, si le client arrive à la décoder, c'est qu'il a la clef privée, et donc on lui autorise l'accès. Si l'on ne met pas de mot de passe sur la clef, alors on n'a plus besoin de taper le mot de passe pour se loguer sur une machine. L'inconvénient, c'est que si quelqu'un réussi à voler la clef, il peut aussi le faire. Si vous avez tendance à oublier de locker votre station, mettez un mot de passe. *** Clef ssh avec mot de passe. Pour les clefs avec mot de passe, il existe tout de même un moyen de s'économiser des frappes de mot de passe. Pour cela, on utilise |ssh-agent| qui est normalement lancé automatiquement au login. Cet utilitaire va garder une copie de la clef privée non cryptée afin de répondre aux demandes de |ssh|. Pour lui communiquer la clef, tapez : ssh-add Il demande alors le mot de passe de la clef. Le top du top, c'est que l'on peut forwarder cet agent sur les machines auxquelles on se connecte. Pour cela, ajouter dans |.ssh/config| : ForwardAgent yes Lorsqu'on se déconnecte, l'agent est terminé et donc oublie la clef. On peut aussi lui demander explicitement avec : ssh-add -D Ou alors préciser une durée limite en secondes lors de l'ajout avec : ssh-add -t 300 *** Envoyer la clef publique au serveur Il y a deux moyens, on peut l'ajouter à la main dans |.ssh/authorized_keys| ou utiliser |ssh-copy-id|. Pour faire connaître sa clef publique à un serveur, utilisez les commandes : ssh-add ssh-copy-id login@nom.du.serveur La clef est alors ajoutée dans |.ssh/authorized_keys| sur le serveur distant. ** Connexion directe à Lampion depuis Internet Commencez par demander un compte sur choam à l'administrateur système. *** Méthode de la configuration ssh Dans cette méthode, on utilise une connexion ssh pour faire passer l'autre connexion, les données sont donc cryptées deux fois. Ajouter dans le fichier |.ssh/config| : Host choam User monlogin Hostname choam.efrei.fr Host robot User monlogin ProxyCommand ssh choam /users/es/schodet/bin/nc -q 3 robot.assos.efrei.fr 22 Maintenant, la commande |ssh robot| permet de se connecter à Lampion. On peut utiliser robot comme nom d'hôtes pour tout les programmes utilisant ssh. La commande |/users/es/schodet/bin/nc| est un client TCP qui se connecte sur un port. Elle est disponible dans le packet netcat, mais n'est pas installé sur choam, c'est pourquoi je l'ai dans mon répertoire bin. L'option |-q 3| permet de ne pas laisser trainer de processus sur choam car netcat a une vision spéciale des fins de fichiers. *** Méthode du script d'indirection Dans cette méthode, on utilise deux connexions ssh à la suite, les données sont décryptées sur la première machine puis re-cryptées pour passer sur la deuxième. On écrit un script shell qui permet de se connecter sur une machine à l'intérieur de l'école depuis n'importe où. Voila le script shell en question : ^<< #!/bin/bash exec ssh monlogin@choam.efrei.fr "ssh $*" ^>> Mettre ce script dans le |PATH| et le rendre exécutable. Il suffit ensuite d'indiquer à CVS de l'utiliser avec la variable |CVS_RSH| ou pour Subversion en éditant le fichier de configuration et en ajoutant une méthode de tunnel. Le script |directssh| est une version plus intelligente que l'on peut utiliser pour se connecter à n'importe quelle machine. Il suffit de le mettre dans le |PATH| sous le nom |ssh|. ** Subversion (svn) Subversion est utilisé depuis 2005 à la place de CVS. L'url pour l'utiliser est |file:///svn/trunk| depuis lampion ou |svn+ssh://robot/svn/trunk| depuis l'extérieur (en fait, trunk est le répertoire qui contient la branche principale). Lisez la doc sur les outils de développement |d/tools/doc/subversion| pour en savoir plus. ** CVS CVS a été utilisé au robot jusqu'en 2005. Il n'est plus utilisé sur les nouveaux projet. Pour utiliser le serveur CVS, rajouter dans votre |.bashrc|, sur lampion : export CVSROOT=/srv/cvs Sur une autre machine : export CVSROOT=login@robot.assos.efrei.fr:/srv/cvs Merci de ne pas y foutre le bordel. Il y a une arborescence standardisée à respecter, si vous avez un doute sur où ranger quoi, posez la question. Pareil, pour utiliser CVS, google ! N'hésitez pas tout de même à poser des questions, mais cherchez quand même par vous même d'abord. ** Serveur web Le serveur est accessible de l'intérieur du réseau assos par [http://robot/], où de n'importe où sur Internet par [http://www.linux.efrei.fr/robot/]. L'accès depuis l'intérieur permet de consulter les miroirs locaux sur le C++ ou les datasheets. * Alias mail L'alias |robot| est l'alias des membres du bureau, ne postez rien de technique dessus. L'alias |robot-dev| est l'alias de développement. Respecter la netiquette et en cas de sondage n'envoyez pas de mail sur l'alias pour dire "Oui, d'accord" ou "moi, je viens", envoyez votre mail à la personne qui collecte les réponses.