Diverses astuces pour travailler sur une machine distante.
Générer une clé
$ ssh-keygen -t rsa -b 2048
Vérifier qu’on a bien :
$ chmod 700 .ssh
$ chmod 644 .ssh/id_rsa.pub
$ chmod 600 .ssh/id_rsa
et envoyer la clé publique .ssh/id_rsa.pub
,
au gestionnaire du dépot svn
par exemple.
Autre exemple :
pour se connecter à une machine distante via ssh
en utiliser les
clés, il faut copier .ssh/id_rsa.pub
dans .ssh/authorized_keys
sur la machine distante. Le mot de passe à donner pour se connecter est alors
celui de la clé, et non celui du compte distant. Si on utilise ssh-add
(voir
ci-dessous), on n’a pas besoin de donner
Mémoriser le mot de passe le temps d’une session
$ ssh-add
permet de donner le mot de passe de la clé privée qu’une seule fois lors d’une session.
On peut préciser le nom de fichier s’il n’est pas standard ou si on en a plusieurs.
Utiliser Firefox sur un serveur distant
ou comment accéder à un intranet quand on est loin…
Le problème est de savoir utiliser firefox
(ou autre)
pour éditer un wiki sur un site
auquel on n’a pas accès de l’extérieur.
Solution 1
$ ssh -YC -p20 moi@le.serveur.com
puis lancer firefox
, éventuellement firefox -no-remote
s’il y a déjà une
instance qui tourne sur la machine.
On alors accès aux adresses accessibles uniquement sur le serveur interne.
Ca marche, mais c’est super lent car la session X passe par le tunnel ssh…
Solution 2
-
ouvrir un tunnel ssh avec l’option -L :
$ ssh -L 8080:host:80 moi@le.serveur.com
(en remplaçant
host
par la valeur appropriée bien sur). -
configurer firefox dans :
Edition/Préférences/Avancé/Réseau/Paramètres
sélectionner et configurer :
HTTP proxy : localhost
Port : 8080
et ça marche !
Solution 3
Autre solution que j’avais essayé, mais que je n’ai pas réussi à faire fonctionner (il faudrait que je ré-essaye…)
-
ouvrir un tunnel ssh avec l’option -D :
$ ssh -D 3333 moi@le.serveur.com
-
configurer firefox dans :
Edition/Préférences/Avancé/Réseau/Paramètres
sélectionner SOCKS v5 avec
Hôte SOCKS : 127.0.0.1
Port : 3333
- on peut tester que l’adresse IP a changé après avoir configuré le proxy avec http://whatismyip.com/
- MAIS, je n’ai pas accès aux adresses internes…
Une autre solution possible (qui n’a pas l’air de fonctionner) :
- installer tsocks
- le configurer dans /etc/tsocks.conf avec
server = 127.0.0.1
server_type = 5
server_port = 3333
-
lancer :
$ tsocks firefox
Il faudrait essayer de comprendre pourquoi ça ne fonctionne pas.
Nomage d’une machine distante
Pour donner un petit nom à une machine distante, il suffit de modifier le
fichier ~/.ssh/config
. Par exemple, si on veut pouvoir faire :
$ ssh maison
au lieu de :
$ ssh germaine@ssh.a_la_maison.fr
il suffit d’ajouter :
Host maison
User germaine
HostName ssh.a_la_maison.fr
Connection à travers une passerelle
En résumé, au lieu de faire :
germaine@portable: $ ssh bidochon@entreprise.com
bidochon@passerelle: $ ssh machine
bidochon@machine: $
On peut modifier le fichier ~/.ssh/config
de la façon suivante :
Host boulot
User bidochon
ServerAliveInterval 30
ProxyCommand ssh -q bidochon@entreprise.com "/usr/bin/nc -w 90 machine 22"
Pour toute les explications, voir là.
Montage d’un système de fichier distant
Pour monter un système de fichier distant en local, on utilise sshfs
.
La première fois, il faut d’abord créer le point de montage :
$ mkdir ~/maison
On peut alors faire le montage de la façon suivante :
$ sshfs germaine@ssh.a_la_maison.fr: ~/maison
Plus généralement, la commande est de la forme :
$ sshfs [user@]host:[dir] mountpoint [options]
Pour le démonter :
$ fusermount -u ~/maison
Pour automatiser le montage, voir sur cette page où c’est très bien expliqué (mais je n’ai pas testé…).
Voir aussi :
- Afficher un pourcentage dans une page HTML
- VNC : Virtual Network Computing
- Git : déménagement d'un dépôt
- Quelques liens au sujet de l'analyse statique
- Ocaml: mon principal langage de développement
- Disque dur externe
- Les profiles dans Firefox
- Cryptographie et mail sous Android
- Quelques liens au sujet du C
- Git rebase : pour diviser un commit