Outils pour utilisateurs

Outils du site


memo:ssh

SSH

Génération d'une paire de clés

On tape :

ssh-keygen

On peut spécifier le type de clés (RSA, DSA…)

ssh-keygen -t dsa
ssh-keygen -t rsa

Echange de clés entre machines

On copie la clé publique dans le fichier /home/utilisateur/.ssh/authorized_keys de la machine distante.

cat ~/.ssh/id_dsa.pub | ssh utilisateur@machine_distante "cat - >> ~/.ssh/authorized_keys"

certaine distribution on une commande “ssh-copy-id” qui fait la même chose :

ssh-copy-id -i ~/.ssh/id_dsa.pub utilisateur@machine_distante

sshd fonctionne par defaut en strictmode, ce qui signifie que les droits sur la home de l'utilisateur qui se connecte sans clé ne doivent pas etre trop permissif, sur la machine qui se connecte comme sur la machine de destination. dans le cas contraire la connexion sera refusé.

Niveau max toléré par sshd sans mettre strictmode à “no”

chmod 750 $HOME
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys

Tunnel SSH

Pour faire passer facilement des informations qui doivent être chiffrées

ssh -ND port_choisi utilisateur@machine_distante

Dans n'importe quel logiciel qui gère le protocole SOCKS (firefox, certains logiciel de messagerie…), il est possible d'indiquer “localhost” port “port_choisi” comme proxy pour que le traffic soit acheminé vers la “machine_distante”

Dans firefox :

edition/préférence/avancé/réseau/paramètres

On séléctionne “configuration manuelle du proxy”

On renseigne la celulle “hôte SOCKS” avec “localhost”, la cellule “port” avec “port_choisi”

Les requêtes DNS ne passe pas par le tunnel par défaut, il faut donc changer ça en tapant “about:config” dans la barre d'adresse, et passer l'option “network.proxy.socks_remote_dns” à “true”

Reverse SSH

Cela permet d'accéder à une machine distante derrière un firewall et/ou un NAT.

Si, par exemple, je dois accéder à la machine d'un utilisateur en ssh, mais celui ci est derrère une trucbox (orange/free/sfr…), c'est impossible, de plus l'utilisateur étant débutant, il n'est pas envisageable de lui faire rediriger le port 22 vers sa machine. Par contre on peut lui faire taper une commande sur son poste.

Le principe est que la connexion est initiée depuis la machine distante, qui, dans pratiquement tous les cas, a le droit d'établir une connexion SSH vers l'extérieur. On utilisera ensuite ce tunnel pour ce connecter à sa machine.

Sur la machine de l'utilisateur :

ssh -NR 65000:localhost:22 utilisateur@machine_qui_va_utiliser_le_tunnel

On entre (fait entrer par l'utilisateur) le mot de passe de connexion.

Sur la machine vers laquelle j'ai ouvert le tunnel :

ssh -p 65000 utilisateur_machine_distante@127.0.0.1
memo/ssh.txt · Dernière modification : 2011/09/30 22:53 de sheltem