navigation
Home
admin
|
Openssh
October 18th, 2016
|
| Table des matières |  |
Fichier config
SSH Port Forwarding et VNC
Générer une clé
Regénérer les clés du serveur
Test de connexion ssh en utilisant les clés
Rebond sur une machine
| Fichier config |  |
Le fichier .ssh/config permet de se simplifier la vie.
Exemple :
$ cat .ssh/config
Host gloups
User brichard
HostName gloups.univ-lemans.fr |
A la place de
ssh brichard@gloups.univ-lemans.fr |
je peux simplement saisir :
Source : http://nerderati.com/2011/03/simplify-your-life-with-an-ssh-config-file/
| SSH Port Forwarding et VNC |  |
Objectif
Utiliser VNC sur une machine n'ayant que le ssh d'ouvert.
Sources
http://www.securityfocus.com/infocus/1816
et
http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Port_Forwarding.html
Exemple 1 : votre machine est protégée par un firewall et seul le ssh est autorisé
[bruno@localhost:] ssh -C -N -L 5999:machine_distante:5900 mon_compte@machine_distante |
Laissez cette connexion tranquille...
Vous pouvez maintenant accéder à VNC depuis votre machine locale à l'adresse "localhost:5999".
Note : la commande ci-dessus, écoute sur le port 5999 et redirige les données vers le port 5900 de la machine distante.
Exemple 2 : votre machine est protégée par un firewall, seul le ssh est autorisé ET, DE PLUS, vous devez passer par une machine relai
ssh -C -L 5999:machine_relai:5998 bruno@machine_relai 'ssh -N -C -g -L 5998:machine_distante:5900 bruno@machine_distante' |
Laissez cette connexion tranquille...
Vous pouvez maintenant accéder à VNC depuis votre machine locale à l'adresse "localhost:5999".
Note 1 : la première partie de la commande permet de créer un tunnel vers la machine relai. La deuxième partie, exécutée sur la machine relai, permet de créer un tunnel entre la machine relai et la machine distante.
Note 2 : le "-g" dans la commande exécutée sur la machine relai permet d'accepter toutes les connexions qui arrivent sur ce port. Cette commande affaiblit donc la sécurité du processus mais semble, a priori, nécessaire.
Exemple 3 : votre machine est protégée par un firewall, ssh et VNC sont autorisés ET, DE PLUS, vous devez passer par une machine relai
La commande a utiliser est la suivante :
ssh -N -C -L 5999:machine_distante:5900 bruno@machine_relai |
Laissez cette connexion tranquille...
Vous pouvez maintenant accéder à VNC depuis votre machine locale à l'adresse "localhost:5999".
Et l'option Reverse ?
It is possible to create a "reverse" ssh tunnel. The reverse tunnel will allow you to create an ssh tunnel from your work computer to your home computer, for example, and then login to your work machine from your home machine even if your work firewall does not permit ssh traffic initiated from your home machine!
For this to work, an ssh server must be installed on your work and home computer, and ssh (TCP port 22) must be allowed outbound from your work computer to your home computer.
$ ssh -R remote_port:localhost:22 your_home_computer
ex. $ ssh -R 2048:localhost:22 home.computer.com
At home, you would then run ssh -p 2048 localhost to log into your work computer via ssh.
Source : www.brandonhutchinson.com/ssh_tunnelling.html
channel 2: open failed: administratively prohibited: open failed |
Solution : utiliser les IP !
Sources :
http://blog.fressengeas.net/post/2010/05/19/Solution-to-SSH-tunneling-failure-because-of-%22channel-X%3A-open-failed%3A-administratively-prohibited%22
http://arstechnica.com/civis/viewtopic.php?f=16&t=192186
| Générer une clé |  |
on obtient 2 clés :
- id_rsa (clé privée)
- id_rsa.pub (clé publique)
Et la copier sur le serveur sur lequel on veut se connecter :
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server |
| Regénérer les clés du serveur |  |
Il est parfois nécessaire de regénérer les clés du serveur...
cf http://fr.wikipedia.org/wiki/Heartbleed
Avec Debian, c'est simple :
rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server |
| Test de connexion ssh en utilisant les clés |  |
ssh -vvv -o PreferredAuthentications=publickey root@machine |
| Rebond sur une machine |  |
ssh -t bruno@machine1 ssh bruno@machine2 |
Note sur le "-t"
Source man :
" -t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty."
Si je fais "ssh serveur", le -t s'applique par défaut => une fois la connexion affectuée, j'aurai un terminal.
Cela se vérifie avec la commande who :
machine1:~>who
root pts/1 2012-02-25 08:57 (localhost:12.0)
bruno pts/11 2012-02-28 22:44 (X.X.X.X) |
(tty = teletypewriter, la console, pts = pseudo terminaux, les connexions distantes)
Si je fais "ssh commande", le -t ne s'applique pas par défaut => pas de tty alloué
Cela se vérifie avec la commande who :
ssh bruno@machine1 who
root pts/1 2012-02-25 08:57 (localhost:12.0) |
Pas de trace de moi...
avec le "-t"
ssh -t bruno@machine1 who
root pts/1 2012-02-25 08:57 (localhost:12.0)
bruno pts/11 2012-02-28 22:45 (X.X.X.X) |
Je suis là !
Message d'erreur
|
|
Contact
|
|---|
Pour m'envoyer un mail, Pour me laisser un commentaire :richard.brunooo chez gmail.com |  |
|
|