663 votes

Comment se connecter en SSH à un invité de VirtualBox en externe via un hôte ?

J'ai une machine virtuelle Ubuntu sur mon ordinateur Windows 7. Comment puis-je la configurer de manière à pouvoir accéder au serveur web en externe via SSH ?

J'ai trouvé des étapes ( Configuration de l'accès SSH entre la VM hôte et la VM invitée de VirtualBox ) pour pouvoir accéder par ssh à mon invité depuis mon hôte, mais cela me laisse toujours le problème de l'accès par mon routeur.

Je suppose que je pourrais installer un serveur SSH sur ma machine Windows, puis créer plusieurs tunnels (bien que je ne sois pas sûr à 100% de ce qu'il faut utiliser en termes de local, dynamique, etc. ou comment configurer plusieurs tunnels ?), mais y a-t-il un moyen de rendre la VM directement accessible à mon routeur afin que je puisse directement y transférer des ports ?

3 votes

Il existe un moyen beaucoup plus simple de le faire, en utilisant Vagrant (qui crée des VM prêtes à l'emploi (accessibles par ssh et par ip) à partir d'un fichier de configuration ou d'une interface graphique). Je ne connais pas votre cas d'utilisation, mais j'ai écrit un grand tutoriel sur Comment créer une VM de serveur Ubuntu accessible par ssh avec Vagrant Il est utile lorsque vous souhaitez mettre en place une machine de développement basée sur LAMP.

1 votes

Vagrant est un excellent outil, mais il n'est pas compatible avec les versions les plus récentes de Virtualbox.

3 votes

La meilleure réponse se trouve plus bas : stackoverflow.com/a/10410527/2214806

1356voto

vkostromin Points 3144

La meilleure façon de se connecter à une VM Linux VirtualBox est la suivante transfert de port . Par défaut, vous devriez déjà avoir une interface qui utilise la fonction NAT . Ensuite, allez à la Réseau et cliquez sur le bouton Transfert de port bouton. Ajouter un nouveau Règle . Comme nom de règle, insérez "ssh". Comme "Port de l'hôte", insérez 3022. Comme "Guest port", insérez 22. Tout le reste de la règle peut être laissé en blanc.

ou à partir de la ligne de commande

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

où 'myserver' est le nom de la VM créée. Vérifiez les règles ajoutées :

VBoxManage showvminfo myserver | grep 'Rule'

C'est tout ! Veillez à ne pas oublier d'installer un SSH dans la VM :

sudo apt-get install openssh-server

Pour SSH dans la VM invitée, écrivez :

ssh -p 3022 user@127.0.0.1

user est votre nom d'utilisateur au sein de la VM.

1 votes

Qu'est-ce que je dois utiliser comme nom d'hôte ou adresse IP ?

0 votes

Keyslinger, juste laissé vide, vous n'avez pas besoin de les remplir.

1 votes

Notez que vous devez activer l'accès au pare-feu de VirtualBox pour les réseaux publics et privés.

131voto

JohnD Points 2195

Changez le type d'adaptateur dans VirtualBox en ponté, et configurez l'invité pour qu'il utilise DHCP ou définir un Adresse IP en dehors des limites du DHCP. Ainsi, la machine virtuelle se comportera comme un invité normal sur votre réseau domestique. Vous pouvez alors effectuer un transfert de port.

2 votes

Une idée de la façon dont la configuration à deux adaptateurs fonctionnera ? L'un sur le NAT et l'autre sur l'hôte uniquement ?

16 votes

A mon avis, exposer la VM sur le réseau local n'est pas la meilleure option (par exemple dans un réseau de bureau), la solution proposée par @vkostromin conserve l'encapsulation de la VM dans l'hôte.

2 votes

@VictorP. Pouvez-vous expliquer pourquoi ce n'est pas la meilleure option dans un réseau de bureau ? Est-ce en raison de la sécurité ou ?

72voto

orip Points 28225

Conserver l'adaptateur NAT et ajouter un deuxième adaptateur hôte seulement fonctionne à merveille, et est crucial pour les ordinateurs portables (où le réseau externe change constamment).

http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/

N'oubliez pas de créer un réseau réservé à l'hôte dans la virtualbox elle-même (GUI -> paramètres -> réseau), sinon vous ne pourrez pas créer l'interface réservée à l'hôte sur l'invité.

2 votes

Seule cette réponse a fonctionné pour moi, aucune autre n'a fonctionné. De plus, j'ai simplement ajouté un adaptateur supplémentaire et cela a fonctionné, je n'ai pas eu besoin d'éditer la page d'accueil. /etc/network/interfaces Merci !

3 votes

Je suis d'accord pour dire que c'est la meilleure solution. Sinon, vous devez sauter à travers des cerceaux chaque fois que vous voulez accéder à un service commun ( ssh , sftp ), car il faudrait passer par un port non standard.

1 votes

Je préfère faire un lien vers Internet Archive : web.archive.org/web/20160523035053/https://muffinresearch.co.uk/ - web.archive.org/web/20170701174835/http://christophermaier.name/ est une autre bonne explication.

27voto

Vous pouvez également utiliser un Réseau ponté (ou "adaptateur de pont", dans les versions plus récentes) dans l'application réglages du réseau . Cela mettra votre VM dans un VLAN avec votre machine. Vous pouvez donc vous connecter à la VM comme ceci.

ssh utilisateur@IP_OF_VM

0 votes

Avec cette solution, la connexion SSH passe-t-elle par le réseau local ?

5voto

Mylen Points 500

Pour l'hôte Windows, vous pouvez :

  1. Dans le gestionnaire de virtualbox :
    1. sélectionnez ctrl + G dans votre gestionnaire de virtualbox,
    2. puis allez dans le panneau réseau
    3. ajouter un réseau privé
      1. assurez-vous que l'option "activer DHCP" n'est PAS sélectionnée
  2. Dans la gestion du réseau (Windows)
    1. Sélectionnez l'adaptateur unique de l'hôte Virtualbox nouvellement créé et la carte réseau physique.
    2. Faites un clic droit et sélectionnez "Faire un pont".
  3. Profitez de

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X