134 liens privés
J'ai l'habitude de me connecter sur des serveurs Windows à partir de mon ordinateur sous Debian. Quand je veux me connecter sur une machine sous GNU/Linux, j'utilise généralement ssh et parfois vnc si je veux l'interface graphique. Aujourd'hui, on m'a demandé ce qu'il existait pour se connecter à distance tout en partageant le bureau, le son et un dossier...
Je suis en train de tester X2Go qui m'a semblé intéressant.
Ma première déception : pas de "serveur" sur Raspberry Pi.
Je me suis ensuite battu pendant plus d'une heure sans pouvoir me connecter sur le serveur...
Est-ce que quelqu'un l'a déjà utilisé ou connait une alternative simple ?
Je suis un peu surpris que ça soit si simple de se connecter de Linux vers Windows (rdesktop!) et si compliqué de Linux à Linux. J'ai sûrement du rater un truc con ?
Créer un tunnel ssh sécurisé entre son boulot et sa maison. Ou entre sa maison et la maison de ses parents. Génial! Il faut que je teste ça rapidemment!
À voir aussi cet autre tutoriel : http://memo-linux.com/ssh-acces-travail-maison/
Une longue liste d'IP qui ont tenté de se connecter en SSH sur son serveur.
Quand on utilise ssh-keygen pour générer une clé, on laisse généralement la taille par défaut mais il est possible pour RSA de spécifier avec l'argument "-b" suivi de la taille.
| ========
| simon@ordi:~$ ssh-keygen -t rsa -b 8192
| ========
Un article intéressant pour bien comprendre le principe des clés privées/publiques appliqué à SSH.
Quelques bases pour sécuriser son serveur GNU/Linux. Il y a pas mal de subtilités à comprendre encore mais fermer tous les ports inutilisés, installer quelques outils pour se protéger (fail2ban, portsentry..) et vérifier la configuration des programmes sur le serveur (ssh, apache, ..), c'est déjà une bonne base.
JE N'AI PAS RÉUSSIS À RÉCUPÉRER UNE CLÉ AVEC CET OUTIL, VOIR PLUS BAS !
J'ai copié les scripts grabagentmem.sh et parse_mem.py depuis le dépôt Github. Je les ai placé dans le dossier ~/Programmes/sshkey-grab/.
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ ls
| grabagentmem.sh parse_mem.py
| ==============
On rend les scripts exécutables :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ chmod +x *
| ==============
Et puis j'ai tenté de lancer le script grabagentmem.sh :
| ==============
| simon@ordi:/home/simon/Programmes/sshkey-grab$ sudo ./grabagentmem.sh
| Error dumping memory from 27322
| ==============
Ah, il manque un truc... En regardant le script, on voit qu'il utilise gdb (le débogueur de GNU : http://www.gnu.org/software/gdb/ ). On l'installe en vitesse et on réessaye. | ============== | simon@ordi:~$ sudo aptitude install gdb |
---|---|---|
simon@ordi:~/Programmes/sshkey-grab$ sudo ./grabagentmem.sh | ||
Created /tmp/sshagent-27322.stack | ||
============== |
C'est mieux. On peut maintenant lancer le deuxième script, parse_mem.py :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py
| Traceback (most recent call last):
| File "./parse_mem.py", line 5, in <module>
| from pyasn1.type import univ
| ImportError: No module named pyasn1.type
| ==============
Il manque le paquet python-pyasn1 , on l'installe :
| ==============
| simon@ordi:~$ sudo aptitude install python-pyasn1
| ==============
On réessaye de lancer le deuxième script :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py
| Traceback (most recent call last):
| File "./parse_mem.py", line 185, in <module>
| keystart.read(sys.argv[1])
| IndexError: list index out of range
| ==============
J'ai oublié de mettre les arguments pour lancer le script. Il faut rajouter le chemin vers le fichier .stack généré par le premier script ainsi qu'un autre chemin où enregistrer la clé privée générée par parse_mem.py :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py /tmp/sshagent-27322.stack /tmp/key
| A saved key was not found in /tmp/sshagent-27322.stack
| The user may not have loaded a key or the key loaded is not supported.
| ==============
Je n'ai pas de clé privée dans sshagent car je ne l'utilise pas. Mais ça semble fonctionner. Plus qu'à mettre une clé dedans et réessayer...
[EDIT : J'ai essayé en ajoutant une clé DSA et une clé RSA et ça ne fonctionne pas. Avec la clé RSA il crée un fichier mais la clé n'est pas bonne et il dit que ce type de clé n'est pas supporté :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py /tmp/sshagent-8445.stack /tmp/key
| Found rsa key
| Creating rsa key: /tmp/key.rsa
| rsa key type is not currently supported.
| ==============
Pour la clé DSA, l'erreur est un peu différente et il ne crée même pas de fichier :
| ==============
| simon@ordi:~/Programmes/sshkey-grab$ sudo ./parse_mem.py /tmp/sshagent-11265.stack /tmp/key
| Found dsa key
| DSA SSH Keys are not currently supported.
| Traceback (most recent call last):
| File "./parse_mem.py", line 186, in <module>
| keystart.getkeys(sys.argv[2])
| File "./parse_mem.py", line 68, in getkeys
| self.create_key(output)
| File "./parse_mem.py", line 95, in create_key
| self.create_dsa(output)
| File "./parse_mem.py", line 105, in create_dsa
| self.mem = self.mem[start+size:]
| NameError: global name 'start' is not defined
| ==============
Une erreur dans le script python ?
(via http://korben.info/recuperer-cles-ssh-en-memoire.html )
Une explication sur un hack. Intéressant de voir la liste des outils et leur utilisation.
(via http://liens.strak.ch/?BfD3bw et d'autres)
(client) $ sudo apt-get install sshfs
(client) $ mkdir pointMontage
(client) $ sudo sshfs -d -o allow_other user@192.168.yy.xx:/home/user/dossier /home/client/pointMontage
En cas de soucis : http://slopjong.de/2013/04/26/sshfs-transport-endpoint-is-not-connected/
Mise en situation : Vous avez téléchargé un documentaire sur votre eeepc et vous souhaitez le regarder sur votre ordinateur de bureau (avec son écran 27" !). Pas de clé usb sous la main et pas assez de place sur le disque dur de l'ordinateur de bureau pour l'envoyer avec SCP. (Le documentaire est en Full HD !)
Il est possible d'utiliser SSH pour faire du streaming entre deux machines.
Il faut lancer la commande à partir de l'ordinateur sur lequel vous voulez que la vidéo s'affiche :
| ========
| simon@ordiBureau ~ $ ssh simon@192.168.1.47 "cat ~/documentaire.mp4" | mplayer -
| ========
Ça marche, mais si votre connexion n'est pas très rapide ou que vous êtes en wifi, ça peut être lent. La solution est d'activer le cache de mplayer. On rajoute donc l'option à la fin de la commande précédente.
| ========
| simon@ordiBureau ~ $ ssh simon@192.168.1.47 "cat ~/documentaire.mp4" | mplayer -cache 8192 -
| ========
Il est possible d'augmenter le cache beaucoup plus pour avoir quelque chose de vraiment fluide. (Tout dépend de votre connexion.)
(sources :
utilisation de ssh : http://artisan.karma-lab.net/differents-canaux-ssh
option "cache" de mplayer : http://www.mplayerhq.hu/DOCS/HTML/en/streaming.html )
Grâce à ces explications, j'ai pu démarrer un programme sur un Raspberry Pi et l'afficher directement sur mon pc de bureau.
1/ Se connecter en ssh avec l'option "-X"
ssh -X login@ip
(exemple : ~$ ssh -X pi@192.168.1.20 )
2/ Lancer un programme et celui-ci s'ouvre sur la machine principale.
(exemple : pi@rpi ~ $ leafpad & )