J'utilise VirtualBox sur Windows 10 (hôte) pour créer deux machines virtuelles (Guest DT
et Guest S
). Puis-je SSH de Guest DT
au Guest S
?
Guest DT
est Ubuntu Bureau 18.04.Guest S
exécute Ubuntu Serveur 18.04.Je suis inexpérimenté avec SSH. J'ai googlé et lu les réponses aux "questions similaires" sur ce site.
Sur Guest DT
, je fais ceci:
$ ssh [email protected]
ssh: connect to Host 10.0.2.15 port 22: Connection refused
Remarque:
test
est mon nom d'utilisateur sur le Guest S
.Sur Guest DT
:
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <a very long key> neil@neil-VirtualBox
Sur Guest S
:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ echo "ssh-rsa <a very long key> neil@neil-VirtualBox" > ~/.ssh/authorized_keys
$ /etc/init.d/ssh restart
Sur Guest S
:
test@server01:~$ service sshd status
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-06-15 02:05:04 UTC; 1h 16min ago
Process: 903 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 906 (sshd)
Tasks: 1 (limit: 2317)
CGroup: /system.slice/ssh.service
└─906 /usr/sbin/sshd -D
Jun 15 02:05:04 server01 systemd[1]: Starting OpenBSD Secure Shell server...
Jun 15 02:05:04 server01 sshd[906]: Server listening on 0.0.0.0 port 22.
Jun 15 02:05:04 server01 sshd[906]: Server listening on :: port 22.
Jun 15 02:05:04 server01 systemd[1]: Started OpenBSD Secure Shell server.
$ Sudo ufw status
[Sudo] password for test:
Status: inactive
/etc/ssh/sshd_config contains :
#PubkeyAuthentication yes
Je pense que la configuration réseau par défaut pour l’invité VirtualBox est NAT
et n’est pas vraiment destinée à réaliser ce type de communication réseau; mais basé sur d'anciennes publications peut être possible en en transférant un port non-système à un port Invité et en utilisant la valeur par défaut adresse IP de bouclage pour atteindre l’invité. 10.0.2.2 est le bouclage par défaut.
Cependant, le plus simple est de vous assurer de choisir le bon réseau pour chacun des invités. Arrêtez vos machines invitées, puis dans VirtualBox, éditez le Mode réseau adapté à vos besoins (grille de notes) .
En utilisant NAT, VirtualBox utilise une adresse IP spéciale 10.0.2.2 en tant que boucle de rappel (du moins, je pense que cela est toujours vrai). Par conséquent, les ports transférés depuis le bouclage sont disponibles pour tous les invités. Je pense que vous devriez pouvoir en profiter. Pour communiquer à l'aide d'un réseau NAT, vous devez utiliser l'un des éléments suivants:
À l’aide de VBoxManage, configurez NAT Transfert d’un port non système (1024–65535) vers un --- port système (<1024) inférieur.
Guest S
l'adresse IP de 10.0.2.15
, selon la question.Configurez la redirection de port sur l'hôte Virtualbox, exécutez:
VBoxManage modifyvm "nom de la machine virtuelle" --natpf1 "guestssh, tcp , 2222, 22"
Tout le trafic TCP arrivant sur le port 2222 de toute interface hôte sera transféré au port 22 de l'invité. Le nom de protocole tcp est un attribut obligatoire définissant le protocole à utiliser pour le transfert (il est également possible d’utiliser udp). Le nom guestsh est purement descriptif et sera généré automatiquement s'il est omis. Le nombre après --natpf indique la carte réseau, comme dans d’autres parties de VBoxManage.
Vérifiez la règle ajoutée:
VBoxManage showvminfo myserver | grep 'Rule'
Connectez-vous à Guest Server
via le mappage de bouclage de l'hôte et le transfert de port pour Guest S
neil @ neil-VirtualBox $ ssh -p 2222 [email protected]
Alternative: changez ( Guest S ) / etc/sshd_config pour écouter sur un port non système (> 1024) . Puis rechargez ssh.
Supprimez simplement toutes les clés à empreinte digitale ECDSA (probablement SHA256) contenues dans le répertoire hosts connus.
vi ~/.ssh/known_hosts