SSH dans VirtualBox Guest: connexion refusée


21

Installer

  • Système d'exploitation hôte Windows 7 64 bits exécutant VirtualBox 4.2, avec le système d'exploitation invité Ubuntu 12.04.
  • Le serveur OpenSSH est installé et fonctionne ( ssh -v localhost se connecte localement sur la machine invitée).
  • Peut SSH vers des serveurs externes (pas de règle de pare-feu Windows sortante bloquant le port 22)
  • Peut envoyer une requête ping à l'IP de l'invité (192.168.56.101)

Problème

En utilisant PuTTY à SSH sur l'IP du système d'exploitation invité (192.168.56.101), PuTTY revient presque immédiatement avec

Erreur réseau: connexion refusée

Comment puis-je diagnostiquer et résoudre ce problème?

Réponses:


10

Êtes-vous sûr que l'IP est pour le système d'exploitation invité. J'ai eu le même problème et il s'est avéré que l'IP que j'utilisais depuis le début, le 192.168.56.101 était en fait l'IP de l'interface Windows et l'IP du système d'exploitation hôte était 192.168.56.103.

Vous pouvez vérifier en faisant ipconfig / ifconfig sur les deux.

REMARQUE: j'avais également configuré une adresse IP statique dont il s'avère que je n'avais pas besoin du tout. Si vous essayez dès le départ, j'ai trouvé ce tutoriel meilleur.


6
+1, la valeur par défaut de VirtualBox est de créer un invité dont l'adaptateur de réseau virtuel est NAT via VirtualBox lui-même. Par conséquent, un tel invité serait en mesure de se déconnecter et de se connecter à SSH lui - même , mais il ne pourrait pas recevoir de connexions SSH tant que les règles de redirection de port n'auraient pas été créées dans VirtualBox.
Gord Thompson

+1 Après 1h de Google-mess, enfin! Je pensais que le .101 était l'invité et non l'hôte!
Afr

6

Aucune des autres solutions n'est bonne car:

  1. Il n'y a aucun intérêt à envoyer à votre invité via le pont si l'invité perdra l'accès à Internet
  2. Toutes les autres solutions ci-dessus vous disent de construire une fusée pour traverser la route.

Scénario

  • Héberger Ubuntu Desktop 16.04
  • Serveur Ubuntu invité 16.04 (exécuté sur la boîte virtuelle 5)

Problème

Connexion SSH refusée

Solution

  1. Arrêtez votre invité Ubuntu
  2. Sur Virtualbox, accédez à Paramètres> réseau> Adaptateur 1> Avancé> Transfert de port
  3. Nom = SSH Hostport = 2022 (ou n'importe quel port mais 22) Guestport (22)
  4. Redémarrez votre invité
  5. Sur votre hôte, ouvrez un mastic ou tout ce que vous utilisez pour SSH
  6. ssh user@127.0.0.1 -p2022 (ou tout port que vous avez mentionné en tant que port hôte)
  7. Amusez-vous bien

j'ai un problème avec ceci: Sur Virtualbox Setting> network> Adapter1> Advanced> Portforwarding is gray not clickable. imgur.com/seT3p02
SL5net

@ SL5net éteint la VM
Alon Gouldman

2

Ce qui suit fonctionne pour moi:

Avant:

vboxnet0: 192.168.56.1
eth1:     192.168.56.1

Après:

vboxnet0: 192.168.56.1
eth1:     192.168.56.101

Donc, fondamentalement, j'ai changé une partie du fichier {/ etc / network / interfaces} comme suit:

Avant:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0 

Après:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0 

Travaux: ssh username@192.168.56.101


Je ne sais pas pourquoi, cela a fonctionné pour moi. Merci @Mause
murarisumit

2

Secure Shell (SSH) est un protocole de connexion et d'exécution de commandes sur des machines distantes. Il fournit des communications cryptées sécurisées. Si vous prévoyez d'accéder à votre machine à distance via SSH via une interface pare-feu, activez cette option. Vous avez besoin du paquet openssh-server installé pour que cette option soit utile.

Voici les informations selon lesquelles le package openssh-serverdoit être installé. Après avoir fait cela sur l'invité et redémarré la VM, vous pouvez utiliser ssh.


Je n'ai pas redémarré mon Ubuntu 16.04 et cela fonctionnait toujours. Merci :)
Oren Milman

1

Vous devez vérifier que le pare-feu de votre système d'exploitation invité ne bloque pas les connexions entrantes sur le port 22.


1
Le pare-feu du système d'exploitation invité est désactivé. C'est la valeur par défaut, et j'ai vérifié qu'il est désactivé avec sudo ufw status.
Eric J.

1

C'est peut-être un problème avec le contrôle d'accès. Pour le désactiver et autoriser un accès complet, en tant que root:

xhosts +

J'ai eu un problème similaire avec la visionneuse VNC


1
J'en doute vraiment, IMHO sshd n'a rien à voir avec X - contrairement à vnc.
mpy

1

Le problème a été résolu en activant le serveur DHCP sur la carte réseau VirtualBox.

VirtualBox (dernière version, version 5) -> Fichier -> Préférences -> Réseau -> Réseaux réservés aux hôtes (onglet) -> Détails des réseaux réservés aux hôtes (icône) -> Serveur DHCP

  1. Cochez Activer le serveur
  2. Remplissez l'adresse IP
  3. OK OK
  4. Redémarrez la machine virtuelle

Mes paramètres pour l'étape 2

  1. Adresse du serveur: 192.168.56.100
  2. Masque de serveur: 255.255.255.0
  3. Limite inférieure d'adresse: 192.168.56.101
  4. Limite supérieure d'adresse: 192.168.56.200

1

Hé, je reviens à la première page que j'ai trouvée dans ma mini-saga de dépannage et de recherche, en espérant que ce tutoriel que j'ai fait puisse sauver quelqu'un d'autre.

Guide de bout en bout sur la configuration d'un serveur CentOS avec Oracle VM:

Partie I - Configuration de la machine virtuelle

  1. Installez Oracle VM VirtualBox et le pack d'extension ici .
  2. Téléchargez l'installation minimale de CentOS ici .
  3. Pour ce tutoriel, j'utilise un client Ubuntu. L'ISO pour cela peut être trouvé ici .
  4. Créez le serveur CentOS et vos machines virtuelles clientes.
  5. Configurez la machine virtuelle CentOS. une. Ouvrez Destination d'installation et appuyez sur Retour. b. Accédez à Network & Hostname si vous souhaitez modifier votre nom d'hôte, ce que je recommande. c. N'hésitez pas à configurer les éléments sous Localisation. Tout le reste est géré automatiquement par VirtualBox. ré. Appuyez sur commencer l'installation. e. Créez à la fois un compte root et un compte normal. Assurez-vous que ce dernier dispose des droits d'administrateur. F. Une fois la barre de chargement pleine, appuyez sur Redémarrer.
  6. Configurez votre machine virtuelle cliente. une. Installez les ajouts d'invité VirtualBox.

Partie II - Configuration du réseau virtuel

  1. Dans VirtualBox, appuyez sur CTRL + W.
  2. Créez un nouveau réseau hôte. une. Si vous recevez une erreur, cela est probablement dû au fait que votre système d'exploitation hôte provoque des problèmes avec VirtualBox lors de l'installation de ses pilotes. Vous devrez désinstaller complètement VirtualBox et réinstaller la dernière version. Assurez-vous d'exécuter l'installation en tant qu'administrateur.
  3. Sous l'onglet Adaptateur, sélectionnez «Configurer l'adaptateur manuellement»
  4. Pour Windows, ouvrez l'invite de commandes et tapez ipconfig.
  5. Faites défiler la sortie jusqu'à ce que vous trouviez le nom du réseau uniquement hôte que vous venez de créer. Utilisez cette adresse IPv4 et ce masque pour la configuration du réseau VirtualBox.
  6. Fermez le gestionnaire de réseau hôte.
  7. Ouvrez les paramètres de votre machine virtuelle cliente. Sous Réseau, Activer l'adaptateur 2, sélectionnez Adaptateur hôte uniquement, puis le nom est le nom de votre réseau hôte uniquement nouvellement créé.
  8. Répétez la dernière étape pour votre machine virtuelle de serveur CentOS. En outre, accédez à la redirection de port de l'adaptateur 1 sous l'onglet Avancé et créez une nouvelle règle. Définissez les ports hôte et invité sur 22.
  9. Avant de fermer les paramètres avancés, notez l'adresse MAC.

Partie III - Configuration du serveur

  1. Lancez votre machine virtuelle CentOS.
  2. Exécuter yum check-update, yum upgradeet yum clean all.
  3. Courez nmtui.
  4. Appuyez sur Entrée sur "Modifier une connexion".
  5. Vous devriez voir «enp03s» et une «Connexion filaire 1». une. Si vous avez deux options de connexion mais ne savez pas laquelle est laquelle, allez en éditer une. Si la valeur de l'appareil correspond à l'adresse MAC indiquée sous l'adaptateur 1 de la partie II, il s'agit de votre connexion NAT, sinon c'est votre connexion hôte uniquement.
  6. Modifiez votre connexion hôte uniquement: a. Définissez la configuration IPv4 sur «manuel». B. Afficher la configuration IPv4 c. Dans VirtualBox, appuyez sur CTRL + W. À côté de votre nom de réseau hôte uniquement, vous devriez voir une combinaison adresse IP / masque de la forme «[ip] / [masque]». Sur votre serveur sous configuration IPv4, voici ce que vous taperez après avoir appuyé sur <Add…>. ré. Descendez et appuyez sur OK.
  7. Assurez-vous que «Connexion automatique» est cochée pour vos connexions hôte uniquement et NAT.
  8. Naviguez hors de nmtuiet reboot.

Partie IV - Configuration et utilisation du client

  1. Démarrez votre machine virtuelle client.
  2. (facultatif) Modifiez / etc / hosts pour inclure la ligne a du formulaire: [serv_ip_addr] [hostname] où serv_ip_addr est l'adresse IP de votre serveur CentOS (deuxième sortie de hostname -Idans votre terminal CentOS). Cela vous permettra d'utiliser ce que vous avez choisi pour [nom d'hôte] de manière interchangeable avec l'adresse IP de votre serveur. Je règle généralement cela sur le nom d'hôte choisi dans la partie II.
  3. Si tout a fonctionné jusqu'à ce point, vous devriez pouvoir vous connecter [user]@[hostname]à votre serveur CentOS. Si ce n'est pas le cas, vous devrez peut-être installer openssh-clientet openssh-serversur vos machines.

Partie V - Servir des sites Web

  1. Il s'agit d'un excellent guide sur l'hébergement de vos propres sites Web à partir d'une configuration telle que décrite ci-dessus.

0

J'ai dû résoudre ce problème en ajoutant une règle ufw pour le 2ème adaptateur:

ufw allow in on enp0s8 to 192.168.56.101 port 22 proto tcp

où enp0s8 est le nom de mon 2ème adaptateur (sur les anciennes distributions Ubuntu, c'était eth1).


-1

Dans votre boîte Linux (VirtualBox Ubuntu), ouvrez le Terminal et entrez la commande suivante: sudo service ssh start

Essayez de vous y connecter à nouveau après cela

Oh mon mal j'ai raté ce que gronostaj a souligné

OK parfois les solutions sont vraiment simples. récemment, j'ai rencontré le même problème avec l'invité Slackware sur l'hôte Windows 7. Tout ce que je devais faire était ifconfig up eth'X 'et attribuer l'IP 192.168.56.xxx sub net 255.255.255.0 (si adaptateur hôte uniquement) Cette question a presque un an, donc je le mentionne pour quelqu'un comme moi trébuche sur cette page en recherchant "connexion ssh refusée" ;-)


OP avait déclaré que les connexions SSH locales fonctionnent, donc le serveur fonctionne.
gronostaj

-2

A eu le même problème, l'a résolu en ajoutant un disque dur virtuel à la machine virtuelle, qui n'en avait pas.


Cela signifie que votre problème était différent. Si votre machine virtuelle n'avait pas de disque dur, elle n'était pas démarrée sur un système d'exploitation, ce qu'était la machine virtuelle OP. Veuillez lire attentivement les questions pour vous assurer de bien les comprendre avant de répondre.
music2myear

Cela ne fournit pas de réponse à la question. Une fois que vous avez une réputation suffisante, vous pourrez commenter n'importe quel message ; fournissez plutôt des réponses qui ne nécessitent pas de clarification de la part du demandeur . - De l'avis
music2myear

Ma machine virtuelle a été démarrée sur un fichier ISO Linux 32 bits, sans disque dur virtuel supplémentaire
Louis Garczynski

Ce qui signifie que vous exécutiez une session Linux "en direct", ce qui n'est certainement pas ce à quoi OP faisait face. Nous sommes heureux que vous ayez résolu votre problème, mais votre solution n'est pas la solution, ou même même proche, de ce qu'OP vivait.
music2myear

Vous avez tout à fait raison, je ne savais pas que le problème d'OP était si spécifique. Cela dit, étant donné que j'ai le même message d'erreur, je garderai la réponse ici, au cas où quelqu'un avec mon problème se retrouverait ici aussi.
Louis Garczynski
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.