Skip to content

Linux Attitude

Le libre est un état d'esprit

Archive

Tag: Ssh

Niveau :      
Résumé : ^] et ~.

Telnet et son successeur sécurisé ssh sont des clients permettant un accès distant. Tout caractère tapé dans le client est aussitôt transmis au système distant, qui aura la charge de l'interpréter. Tous ! Non, quelques caractères résistent encore et toujours au transfert sauvage.

En effet, il est possible de donner des commandes directement au client avec le clavier. Pour que celles-ci fonctionnent, il faut que certains caractères ne soient pas envoyés au serveur mais interprétés par le client lui-même. Ce sont des caractères de contrôle. Nous allons voir le cas particulier du caractère d'échappement.

Telnet

Le caractère d'échappement de telnet est par défaut ^] (ou ctrl-] selon l'écriture choisie, ou ctrl-$ si vous êtes sur putty). Tapez ensuite "help<return>" pour avoir la liste des commandes que peut comprendre telnet. La plus importante à connaître est quit.

Elle est utile lorsque vous tentez de vous connecter à une machine avec telnet et que votre connexion est bloquée pour une raison ou pour une autre. Ex :

$ telnet localhost imap
> Trying 127.0.0.1...
> Connected to localhost.
> Escape character is '^]'.

Si on ne connaît pas le protocole, on ne peut plus sortir de telnet car l'imap demande une séquence bien particulière pour vous déconnecter. De plus une fois connecté le ctrl-c ne fonctionne plus car il est envoyé comme tout autre caractère. Il vous faut donc donc taper "^]quit<return>" pour forcer la déconnexion.

Note : le caractère de contrôle ^E (ou ctrl-E) permet de désactiver l'affichage de ce qu'on est en train de taper, c'est parfois utile si le serveur répète ce que vous écrivez.

Ssh

Le caractère d'échappement de ssh est par défaut ~ attention, il ne fonctionne qu'après un retour à la ligne. L'aide est cette fois disponible avec la séquence ~? et la commande la plus importante est ~. qui permet comme avec telnet de couper la connexion et de quitter ssh.

Par exemple si vous lancez un processus qui bloque votre shell ou si le serveur distant ne répond plus, vous ne pouvez plus rien faire. La séquence permet d'arreter directement le client ssh sans attendre un timeout.

Une autre commande particulièrement utile de ssh est ~C elle permet de rentrer dans un mode commande de ssh. Help vous donnera plus d'infos, mais cette commande permet surtout d'ajouter ou de supprimer des tunnels directement comme vous l'auriez fait avec les options -L et -R, mais cette fois sans relancer ssh.

Niveau :      
Résumé : apt-get install libpam-ssh && vi /etc/pam.d/...

Après avoir utilisé l'agent ssh et les clés, vous voulez aller plus loin.

pam_ssh avant

Je suis sur que vous utilisez régulièrement ssh. Chose embêtante, après chaque login vous devez retaper cette passphrase pour vous connecter. Bien sûr vous avez mis un ssh-askpass pour ne plus oublier de la taper, mais c'est un peu lourd.

Je vous propose donc d'entrer cette passphrase une seule fois directement au login. Elle remplacera votre mot de passe et enregistrera directement la clé dans l'agent. Comment faire ? Tout d'abord installez libpam-ssh avec la méthode que propose votre distrib favorite. Ensuite, il vous faut choisir pour quels type de login vous voulez ceci. La liste se trouve dans /etc/pam.d Il est probable que vous le vouliez pour kdm ou gdm mais pas pour les autres. Dans ce cas éditez le fichier en question, il doit ressembler à quelque chose comme ceci :

#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
@include pam-ssh-auth
@include common-auth
@include common-account
session required        pam_limits.so
@include pam-ssh-session
@include common-session
@include common-password

continue reading...

Niveau :      
Résumé : dsh -g cluster "echo Bonjour"

Avez-vous déjà eu à lancer la même commande sur plusieurs machines ? Si oui, cet article est fait pour vous. Regardez aussi cet autre article d'ebzao.

dsh.png

Konsole

Tout d'abord, le premier outil, bien sympathique si vous avez peu de machines et si vous voulez lancer une commande interactive (par exemple vi).

Le terminal de kde "konsole" dispose d'une fonction bien utile qui est la diffusion de l'entrée utilisateur à toutes les sessions.

Pour lancer une commande sur plusieurs machines, ouvrez plusieurs onglets dans konsole, sur chaque onglet connectez-vous à une machine. Puis mettez-vous sur le premier onglet et sélectionnez "diffusion de l'entrée à toutes les sessions" dans le menu "Affichage".


continue reading...

Niveau :      
Résumé : ssh moi@machine

Utilisation de la clé

Vous le savez sûrement, ssh permet de se connecter à une machine avec un mot de passe ou avec une clé. Tout d'abord un petit rappel :

$ ssh-keygen # on crée une clé ssh
$ ssh-copy-id moi@machine # on copie la partie publique sur la machine qui nous intéresse
$ ssh moi@machine # hop on peut se connecter avec la clé directement

ssh_agent1.png

Utilisation de l'agent

Oui c'est bien mais ... il faut se retaper la passphrase à chaque fois. Et il faut bien avouer que c'est lourd. Mais OpenSSH dans sa grande bonté nous offre un outil supplémentaire : l'agent ssh. Deuxième rappel :

$ ssh-add # on tape la passphrase une fois pour toutes

continue reading...

Sshfs

Mar 23

Niveau :      
Résumé : apt-get install sshfs && sshfs user@machine:/rep /mnt

Sshfs ou comment vous faciliter la vie.

N'avez-vous pas déjà pesté sur le fait de devoir travailler à distance ? Ouvrir un shell et utiliser les moyens du bord vi / emacs (ne lançons pas de troll, personnellement, je préfère ed), ou pire lancer une interface graphique pour éditer vos fichier et constater que tout cela est bien lent. Une autre alternative est de copier les fichiers en local chez vous et de travailler dessus (ouf enfin des outils sympa !), mais ensuite c'est la galère, il faut penser à renvoyer les fichier et après quelques aller-retours, on ne sait plus quel est le dernier fichier modifié et dans quel sens transmettre. rsync (over ssh svp) est la pour vous aider, mais ça manque de convivialité.

Aperçu

sshfs.png

Il existe "Ô miracle" un outil fait pour vous, taillé à votre image : sshfs. Grâce à lui vous pourrez enfin vous sentir chez vous tout en manipulant des fichiers distants. Mais laissons parler la ligne de commande :

$ ssh loin.tresloin.com "ls -a ~/devel/"
> . .. README projetv1 projetv2
$ mkdir ~/loin-devel
$ ls -a loin-devel
> . ..
$ sshfs loin.tresloin.com:~/devel loin-devel
$ ls -a loin-devel
> . .. README projetv1 projetv2

Et voilà ! Faites comme chez vous.


continue reading...