web-dev-qa-db-fra.com

SSH dans Ubuntu VM à distance

Je n'ai pas beaucoup d'expérience sur la mise en réseau ou sur Linux, mais j'essaie d'intégrer SSH dans une machine virtuelle Ubuntu depuis l'extérieur de mon réseau domestique. La machine virtuelle Ubuntu (VirtualBox) s'exécute sur un bureau Debian. J'ai fait des recherches et j'ai découvert que je devais transférer le port 22 du routeur à la machine virtuelle.

  • J'ai changé le paramètre réseau sur le VM pour établir un pont.
  • Je transfère le port à la machine virtuelle.
  • J'ai vérifié ( http://www.yougetsignal.com/ ) pour indiquer que le port était ouvert.

Mais lorsque j'essaie de me connecter, cela ne fonctionne toujours pas. ssh nom d'utilisateur @ - connexion refusée

Dois-je faire quelque chose à l'intérieur de la machine virtuelle pour autoriser les connexions entrantes? Ou transférer n'importe quel port?

Y at-il quelque chose que je fais mal, toute aide serait grandement appréciée !!

10
user1354275

Par défaut, VirtualBox fonctionne en mode "NAT", ce qui signifie qu'il crée un réseau "virtuel" et traduit les accès réseau à partir de la VM, de sorte que, pour le monde extérieur, ils semblent provenir de votre ordinateur actuel.

VirtualBox fait en sorte que la VM pense être connectée à un réseau, mais en réalité, VirtualBox fournit des services réseau, notamment un mini serveur DHCP. Ensuite, VirtualBox effectue des accès réseau "au nom" de la machine virtuelle, la faisant apparaître comme une autre application exécutée sur votre PC.

Cependant, cela signifie que le monde extérieur ne connaît pas vraiment le VM et ne peut pas y accéder directement.

Je pense que la redirection de port que vous avez effectuée a été effectuée de votre routeur domestique vers votre PC, et non vers la machine virtuelle. Il se peut que vous manquiez de la configuration du côté de VirtualBox. Toutes mes excuses si vous l'avez déjà fait, mais votre question n'était pas claire à ce sujet.

En gros, vous devez modifier la configuration réseau de la VM et la définir sur "Ponté". Cela crée une interface virtuelle sur votre PC et permet à la VM de l'utiliser pour accéder au monde extérieur; tout ce qui entre ou va à cette interface est redirigé vers la VM. Ainsi, la VM sera visible uniquement comme une autre machine, quel que soit le réseau auquel votre PC est connecté (il a même sa propre adresse MAC!).

Ensuite, en fonction de la configuration de votre réseau, la VM peut obtenir une adresse DHCP comme tout autre ordinateur connecté à votre routeur, ou vous devrez peut-être configurer une adresse IP statique pour celle-ci. Cela dépend de la configuration de votre réseau.

Une fois que la VM a une adresse "réelle", vous pouvez, sur votre routeur, suivre les instructions trouvées pour acheminer le port 22 à l'adresse IP de la machine virtuelle. Cela devrait fonctionner comme prévu.

Si ce n'est pas le cas:

  • Examinez la configuration du pare-feu de votre machine virtuelle (iptables -L -n). Cela bloque-t-il quelque chose?
  • Configurez un autre ordinateur sur votre réseau local et essayez de vous connecter à l'adresse IP de la machine virtuelle via SSH. Si vous le pouvez, vous devez revérifier la configuration du transfert dans votre routeur. Si vous ne le pouvez pas, vous devez revérifier la configuration SSH et pare-feu de la machine virtuelle.
15
roadmr

d'après ce que je peux comprendre, votre problème réside dans le réseau informatique de votre serveur, car une fois que vous avez configuré le réseau vm en mode pont, vous êtes prêt à partir (vérifiez avec ssh <your.vm.ip.number> sur la ligne de commande de votre serveur - pas dans vm).

votre serveur est derrière un routeur, exactement comme un vm utilisant NAT sur votre machine.

Vous devez contacter l’administrateur réseau de votre serveur pour qu’il puisse mettre en avant l’adresse IP locale de votre vm sur un port/une plage de ports (assurez-vous que votre vm a une adresse IP statique).

Vous pouvez le faire vous-même si vous en avez l'autorisation sur votre passerelle de serveur.

un peu de visualisation:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5
1
apisKod