web-dev-qa-db-fra.com

Comment SSH sur un invité VirtualBox en externe via un hôte?

J'ai un Ubuntu VM en cours d'exécution sur mon ordinateur Windows 7. Comment puis-je le configurer pour pouvoir accéder au serveur Web en externe via SSH?

J'ai trouvé des étapes (installer l'accès SSH entre les machines virtuelles hôte et invité de VirtualBox) pour pouvoir passer à mon invité à partir de mon hôte. , mais cela me laisse toujours avec le problème de l’accès via mon routeur.

Je suppose que je pourrais installer un serveur SSH sur ma machine Windows, puis effectuer un tunnel plusieurs fois (bien que je ne sois pas tout à fait sûr de ce qu'il faut utiliser en termes de local, de dynamique, etc. ou de configuration de plusieurs tunnels?), mais existe-t-il un moyen de rendre le VM directement accessible à mon routeur afin que je puisse directement transférer le port sur celui-ci?

615
Jordan

Le meilleur moyen de vous connecter à un invité Linux VirtualBox VM est transfert de port . Par défaut, vous devriez déjà avoir une interface qui utilise NAT . Accédez ensuite aux paramètres Réseau et cliquez sur le bouton Transfert de port . Ajouter une nouvelle règle . En tant que nom de règle, insérez "ssh". En tant que "Port hôte", insérez 3022. En tant que "Port invité", insérez 22. Tout le reste de la règle peut être laissé en blanc.

ou depuis la ligne de commande

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

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

VBoxManage showvminfo myserver | grep 'Rule'

C'est tout! Assurez-vous de ne pas oublier d'installer un serveur SSH dans la machine virtuelle:

Sudo apt-get install openssh-server

Pour SSH dans la machine virtuelle invitée, écrivez:

ssh -p 3022 [email protected]

user est votre nom d'utilisateur dans la machine virtuelle.

1261
vkostromin

Modifiez le type d'adaptateur dans VirtualBox en ponté et configurez l'invité pour qu'il utilise DHCP ou définissez une adresse statique adresse IP en dehors des limites de DHCP. Cela fera que la machine virtuelle se comportera comme un invité normal sur votre réseau domestique. Vous pouvez ensuite transférer le port.

128
JohnD

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

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 même (interface graphique -> paramètres -> réseau), sinon vous ne pourrez pas créer l'interface réservée à l'hôte sur l'invité.

65
orip

Comment créer un réseau pour hôte uniquement ( meilleur que ponté) pour Solaris 10 et Ubuntu 16.04

Ajouter une interface réservée aux hôtes

  1. Virtualbox> Fichier> Préférences> Réseau> Réseaux réservés aux hôtes> Ajouter
  2. Arrêtez vm.
  3. Paramètres de la VM> Réseau. Le premier adaptateur doit être Nat, le second hôte uniquement.
  4. Lancez cmd.exe et exécutez ipconfig /all. Vous devriez voir des lignes:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    Le deuxième adaptateur invité doit également figurer dans 192.168.59. *.

  5. Démarrer la VM.

Solaris 10

  1. Vérifiez réglagesifconfig -a. Vous devriez voir e1000g0 et e1000g1. Nous sommes intéressés par e1000g1.
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. Vérifiez auprès de l'hôte si cette interface est accessible: ping 192.168.56.10

Conservez ces paramètres au redémarrage

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

Configurez ssh service ( administration ) pour vous connecter en tant que root (non conseillé)

Vérifier si SSH est activé

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

Modifiez/etc/ssh/sshd_config pour qu'il y ait

PermitRootLogin yes

Redémarrer le service SSH

svcadm restart ssh

De l'hôte, vérifiez

ssh [email protected]

Ubuntu 16.04

Liste des interfaces:

ip addr

Vous devriez voir trois interfaces comme lo, enp0s3, enp0s8. Nous allons utiliser le troisième.

Éditez/etc/network/interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Puis Sudo ifup enp0s8. Vérifiez si enp0s8 a la bonne adresse. Vous devriez voir votre adresse IP:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

Sinon, vous pouvez exécuter Sudo ifdown enp0s8 && Sudo ifup enp0s8

https://superuser.com/questions/424083/virtualbox-Host-ssh-to-guest/424115#424115

22
rofrol

Vous pouvez également utiliser un réseau ponté (ou un "adaptateur de pont", dans les versions plus récentes) dans paramètres résea. Cela placera votre VM dans un VLAN avec votre machine. Donc, vous pouvez simplement ssh dans le VM comme ceci.

utilisateur ssh @ IP_OF_VM

20

Pour pouvoir ssh sur une machine Ubuntu VM exécutée dans VirtualBox à partir de votre ordinateur hôte, vous devez configurer deux cartes réseau pour la machine virtuelle.

Tout d’abord, arrêtez le VM si pas encore.

Puis sélectionnez le VM et cliquez sur le menu Paramètres dans la barre d’outils VirtualBox:

enter image description here

Configurer l'adaptateur 1

enter image description here

Configurer l'adaptateur 2

enter image description here

(Remarque: vous n'avez pas besoin de configurer de redirection de port.)

C'est ça. Une fois configuré, vous pouvez démarrer votre VM. Dans votre VM, la configuration du réseau ressemblera à celle ci-dessous et vous aurez également un accès Internet:

enter image description here

Également dans votre ordinateur hôte, vous pouvez ssh sur votre VM:

enter image description here

Assurez-vous que le serveur SSH a été installé et fonctionne correctement sur la machine virtuelle.

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

Sinon, installez-le:

$ Sudo apt-get install openssh-server

Aussi pour votre information:

  • Ma version de VirtualBox: 5.2.6 r120293 (Qt5.6.2), 2018
  • Ma version Ubuntu: Ubuntu 16.04.3 LTS
  • Mon ordinateur hôte: Windows 10
11
Yuci

Pour Windows Host, vous pouvez:

  1. Dans le gestionnaire de virtualbox:
    1. sélectionner ctrl+G dans votre gestionnaire de virtualbox,
    2. puis aller au panneau de réseau
    3. ajouter un réseau privé
      1. assurez-vous que l'activation de DHCP n'est PAS sélectionnée
  2. En gestion de réseau (Windows)
    1. Sélectionnez l'adaptateur d'hôte uniquement virtualbox nouvellement créé et la carte réseau physique.
    2. Clic droit et sélectionnez "Créer un pont"
  3. Prendre plaisir
5
Alexandre Mélard

Suivez les étapes ci-dessous pour vous connecter à votre ubuntu VM s'exécutant dans une boîte virtuelle à partir de la machine hôte à l'aide de PuTTY (sans transfert de port):

  1. Sur le gestionnaire Virtualbox, sélectionnez la machine virtuelle, cliquez sur l'icône des paramètres. Ensuite, allez dans Réseaux et activez deux adaptateurs comme ci-dessous:

    • Adaptateur 1 (pour accès Internet): connecté à -> NAT, Avancé -> Vérifiez le câble connecté.
    • Adaptateur 2: connecté à -> adaptateur pour hôte uniquement, avancé -> vérifiez le câble connecté et mode Promiscuous -> Tout autoriser.
  2. Démarrez Ubuntu VM.

  3. Connectez-vous à la VM en tant que root.
  4. Editez le fichier '/ etc/network/interfaces' comme ci-dessous et enregistrez-le:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. Redémarrez la VM.

  6. Connectez-vous à la commande VM et exécutez la commande ci-dessous pour vérifier l'adresse IP attribuée à eth1:

    ifconfig
    
  7. Utilisez cette adresse IP pour ouvrir une session PuTTY pour la machine virtuelle.

4
Piyush Raj

Vous pouvez également initier un transfert de port VERS votre hôte, OR AUTRE AUTRE SERVEUR, à partir de votre invité. Ceci est particulièrement utile si votre invité est "verrouillé" ou ne peut pas compléter l'option ModifyVM (par exemple, aucune autorisation pour VBoxManage).

Trois exigences mineures sont 1) vous êtes/pouvez vous connecter à l'invité VirtualBox (via l'interface graphique de la console, un autre invité, etc.), 2) vous avez un compte sur l'hôte VirtualBox (ou un autre serveur), et 3) SSH et TCP le transfert n'est pas bloqué.

En supposant que vous puissiez satisfaire aux 3 exigences, voici les étapes:

  1. Sur l'invité, exécutez netstat -rn et recherchez l'adresse de la passerelle vers la destination par défaut de la route 0.0.0.0. Disons que c'est "10.0.2.2". Cette adresse 'Gateway' est l’une des adresses IP virtuelles de l’hôte VirtualBox.
  2. Sur l'invité, exécutez ssh -R 2222:localhost:22 10.0.2.2 où "10.0.2.2" est l'adresse IP du serveur VirtualBox - OU toute autre adresse IP de serveur sur laquelle vous souhaitez transférer un port.
  3. Sur l'hôte, exécutez ssh 10.0.2.2 -p2222 où 10.0.2.2 est l'adresse IP virtuelle virtuelle passerelle/VBHost trouvée à l'étape 1. S'il ne s'agit PAS de l'hôte VirtualBox auquel vous effectuez le transfert de port, la commande est ssh localhost -p2222
4
Andrew

Une bonne explication sur la façon de configurer la redirection de port avec NAT se trouve dans les documents VirtualBox: http://www.virtualbox.org/manual/ch06.html#natforward

2
rodrunner

Ubuntu 18.04 LTS

Configuration avec ponté pour voir l'adresse IP du serveur et se connecter sans "redirection de port"

VirtualBox> clic droit sur serveur> paramètres> réseau> activer l'adaptateur 2> sélectionner "ponté"> mode promiscuous: autoriser tout> vérifier le câble connecté> démarrer le serveur

Sur le serveur Ubuntu, éditez le fichier Sudo nano /etc/netplan/*init.yaml,

Mon exemple de fichier:

network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
        enp0s8:
            addresses: [192.168.0.200/24]
            dhcp4: no
            dhcp6: no
            nameservers:
               addresses: [8.8.8.8, 8.8.4.4]
    version: 2

Des commandes qui vous aideront

nano /etc/netplan/file.yaml   # file to specify the rules of network
reboot now          # restart ubuntu server right now
netplan apply       # do after edited *.yaml, to apply changes
ifconfig -a         # show interfaces with ip, netmask, broadcast, etc...
ping google.com     # to see if there is internet

Configurer des adresses IP statiques sur un serveur Ubuntu 18.04 LTS - avec NetPlan

1
DarckBlezzer

Régler simplement le paramètre réseau sur ponté a été la solution.

Votre IP va changer quand vous faites cela. Cependant, dans mon cas, cela n'a pas changé immédiatement. ifconfig a renvoyé la même adresse IP. J'ai redémarré vm and boom, l'ip s'est mis à un début avec 192. * et j'ai immédiatement été autorisé à accéder à ssh.

0
boulder_ruby

Utilisez NAT la carte réseau et ajoutez le transfert de port. Mentionnez l'hôte actuel. N'utilisez pas 127.0.0.1 ou localhost.

0
anunaki

Sur des réseaux sécurisés, configurer votre réseau sur un pont peut ne pas fonctionner. Les administrateurs ne peuvent autoriser qu'une seule adresse MAC par port ou, pire encore, le bloquer si les commutateurs détectent plusieurs Mac sur un port.

La meilleure solution à mon avis consiste à configurer des interfaces réseau supplémentaires pour gérer les services supplémentaires que vous souhaitez exécuter sur vos machines. J'ai donc une interface de pont pour permettre le pontage lorsque je ramène mon ordinateur portable à la maison et je peux utiliser SSH depuis d'autres périphériques de mon réseau, ainsi qu'un adaptateur pour hôte uniquement lorsque je souhaite passer à SSH dans mon VM de mon ordinateur portable lorsque je suis connecté au réseau wifi eduroam sur le campus.

0
tensai