Ssh redirection de port sur virtualbox

Bonjour,

j’ai une machine serveur sur laquelle j’ai installé virtualbox et une machine virtuelle appelée vm1. Jusque la il n’y a aucun soucis. Le problème c’est que j’ai besoin de pouvoir me connecter en ssh de l’extérieur. Pour cela j’ai découvert que l’on pouvait utiliser du NAT (supporté par virtualbox, il y a juste a choisir la bonne carte reseau sur le soft).

Une fois cela fait, j’ai trouvé tout un tas de tuto sur le net expliquant comment faire ça comme il faut, mais aucune solution de fonctionne.

Solution 1 :

VBoxManage setextradata vm1 "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/Protocol" TCP VBoxManage setextradata vm1 "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/HostPort" 2201 VBoxManage setextradata vm1 "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/GuestPort" 22 VBoxManage getextradata vm1 enumerate

Solution 2 :

Apparemment ces deux solutions fonctionnent parfaitement (d’après ce que j’ai pu voir sur les forums et autres wiki).

Personnelement, j’utilise la commande “ssh -p 2201 @”, mais elle essaye de se connecter sur la machine hôte avec un utilisateur qui n’existe pas (puisqu’il existe seulement sur la vm)

PS: J’ai autorisé la connection sur le port 2201 sur sshd_conf avec “Port 2201”

Si quelqu’un a une idée ce serait sympa parce que la j’ai passé beaucoup de temps et j’ai épuisé google (qui me ressort toujours les memes liens :pray: )

Salut,

Tu veux donc t’y connecter hors de ton réseaux local ? Si oui as tu router ton port sur ton routeur ?
Arrive tu a te connecter en ssh depuis ton hote virtualbox ?
As tu aussi essayé de te connecté sur le port 22 (regles inversé dans la synthaxe ???) ?
As tu regardé les logs de ssh de ta VM pour voir si les connections ne sont pas droppé ?

(désolé pour la tonne de question mais je ne suis pas sur de bien comprendre :030 )

Lorsque j’utilisais VirtualBox j’étais le mode bridge (qui est bien moins fastidieux à configurer à mon gout). Essaie de créer plusieurs cartes réseaux pour tester le mode de connections que tu préfère.

Tiens moi au courant.

++

Pour répondre à ta première question, j’ai une machine A et un serveur B qui appartiennent au même réseau local. j’ai besoin que la machine A puisse se connecter en ssh a la machine virtuelle présente sur le serveur B.

Si je comprend bien ta question, tu veux savoir si j’arrive a me connecter du serveur B a la machine virtuelle. La réponse est non (cmd : “ssh -p 2201 @localhost”)

Tu veux dire rediriger le port 22 de l’hôte (serveur B) vers la machine virtuelle (port 22) ?
Je viens de tester, ça donne exactement le même résultat, il essaye de se connecter au serveur B avec l’utilisateur existant seulement sur vm1 :

Sur machine A (même chose si je le fait en local sur le serveur B) :

ssh <guest user>@<serveur B IP> <guest user>@<serveur B IP>'s password: Permission denied, please try again.

J’ai pas regardé les logs =X mais d’après moi la connexion ssh n’atteint même pas la VM, il essaye betement de se connecter sur le serveur B avec un user qui n’existe pas :blush:

Pour finir, le problème c’est que je ne peux pas utiliser le mode bridge, toutes les adresses IP du réseau local sont réservées, et il m’est impossible de faire quoi que ce soit à ce niveau la.

humm ok et donc tu ne peux configurer le NAT que via les commandes VirtualBoxManager la ?
Sinon as tu regardé si le mode routeur est activé ? /proc/sys/net/ipv4/ip_forward ?
De ta machine virtuel essaie de faire un traceroute ou un route -n pour savoir un peu ou tu passes

Apparament lui il dit que c’est pas possible donc je sais pas …
http://forum.ubuntu-fr.org/viewtopic.php?id=194770

Sinon essaie en 127.0.0.1 à la place de localhost c’est ce qu’il fait ici :
http://blog.nicoleau-fabien.net/index.php?post/2007/11/11/Config-NAT-pour-acceder-a-votre-machine-virtuelle-VirtualBox

j’ai fait 2,3 recherches supplémentaires pour toi mais apparament l’hote A ne pourra pas joindre ta VM sur ton serveur B…
http://www.virtualbox.org/manual/ch06.html#natforward
http://doc.fedora-fr.org/wiki/VirtualBox_:_installation,_configuration,utilisation#Simplement:le_NAT.28Mappage_des_ports.29

Bon courage !

j’ai accès a l’interface de virtualbox, c’est juste que c’est plus facile d’expliquer avec des commandes qu’avec une IHM pour les manips.

Je viens de regarder le mode routeur dans la config du serveur B (c’est ça ?) il est 0 mais j’arrive pas a le mettre à 1.

route -n :

et je suis sur que c’est possible car dans la doc de virtualbox ils disent clairement que c’est faisable :

virtualbox.org/manual/ch06.html#natforward (section NAT)

Un echo 1 > /proc/sys/net/ipv4/ip_forward ne fonctionne pas ?
Sinon dans /etc/sysctl.conf tu peux mettre la ligne net…ipforward à 1

De ton host à ton guest oui mais de l’extérieur à ton host qui route vers le guest apparament non …
Dommage que tu ne puisses utiliser le bridge…

J’ai réussi, mais je ne sais pas trop comment … je n’ai rien fait de plus à part reboot le serveur B … j’essaye de trouver pour mettre la solution.

[Edit] A priori c’est parce que sur le serveur B j’avais autorisé les connexion ssh sur le port 2201.
J’ai supprimé la ligne

Il doit y avoir autre chose a mon avis