Hi guys, In this article we will see how to connect to VM virtualBox from host systeme
What is SSH?
SSH, Secure Shel also known as Secure Socket Shell, is a network protocol that gives system administrators, a secure way to access a computer over an unsecured network.
How To: install ubuntu on VirtualBox
Yassine Sellami ・ Jul 11 '19
How to install openSSH server on Ubuntu
sshd : is the OpenSSH server process. It listens to incoming connections using the SSH protocol and acts as the server for the protocol. It handles user authentication, encryption, terminal connections, file transfers, and tunnelling.
Let's start to install openssh-server.
First update the system
$ sudo apt update
$ sudo apt upgrade
To install openssh-server package, run:
$ sudo apt install openssh-server
Once installed, the SSH service should be started automatically. If necessary, you can start (or stop, restart) the service manually via command:
$ sudo service ssh start
Verify that ssh service running
$ sudo systemctl status ssh
Configure firewall and open port 22
Before enabling the UFW firewall we need to add a rule which will allow incoming SSH connections. If you’re connecting to your server from a remote location, which is almost always the case and you enable the UFW firewall before explicitly allow incoming SSH connections you will no longer be able to connect to your Ubuntu server.
To configure your UFW firewall to allow incoming SSH connections, type the following command:
$ sudo ufw allow ssh
Now we can enable UFW firewall by typing:
$ sudo ufw enable
You can check the status of UFW with the following command:
$ sudo ufw status
SSH to a VM VirtualBox
The best way to login to a guest Linux VirtualBox VM is port forwarding. By default, you should have one interface already which is using NAT.
Then go to the Network settings and click advanced, Click on the Port Forwarding button.
Add a new Rule. As value :
rule name = "ssh", "Protocol' = "TCP", "Host port" = 2222, "Guest port" = 22.
VirtualBox will create a private network (10.0.2.x) which will be connected to your host network using NAT, To get Guest IP, type the following command in you VM ubuntu :
$ sudo ifconfig [interface_name] (for me: ifconfig enp0s3)
if use latest version of ubuntu, it use #Netplan, You can try this command
$ sudo ip a
Everything else of the rule can be left blank.
This way, we can point putty or MobaXterm to Port 22 of 127.0.0.1 and VirtualBox will redirect this connection to our VM where its ssh daemon will answer it, allowing us to log in.
In my case I use MobaXtrem, To SSH into the guest VM, write:
$ ssh -p 2222 [user]@127.0.0.1
*Where user is your username within the VM.
Close GUI session in virtualbox without shutting down the VM
There is an extra dropdown menu next to the Start button with an even better option:
Detachable Start! It is a hybrid start option where they run the VM process in the background, and simply display a headless VM client that you can easily close.
Then you can close VirtualBox GUI, by choosing "Continue ruining in the background":
Enjoy the fact that you can now SSH into your VM!
Top comments (10)
Excellent tutorial! Well written, to the point, and easy to understand. There is an abundance of blog posts written on the subject that treat you like a complete beginner (too much reading for something so simple) or use a complicated bridged network setup, which is a solution, but not what I was looking for. Thank you for this post.
Thank You
Thanks a lot!!!
Very Helpful Post. Thanks.
The OpenSSH server reads a configuration file when it is started. Usually, this file is /etc/ssh/sshd_config
In this file, we need to change the following settings, for password based login to work :
PasswordAuthentication yes
ChallengeResponseAuthentication yes
Hope this helps. Additionally, you can easily configure a host name resolution, for the LAN network, instead of knowing ip address each time, by following the guide at : dev.to/linuxguist/running-servers-...
How can I use internal docker containers via IPs like 172.17.0.2 of it in the guest machine
Example - I am making an application which requires mysql/mongodb which I've installed as a container of guest machine which is Ubuntu 20.04
I want to add server properties in the app running on windows ... what ip can be used?
You can't add PF for docker container IPs, Because each time u get a new IP for ur container.
--> 1 windows hosting VBox.
--> 2 Ubuntu 20.04 in VBox.
--> 3 Mysql in docker (port 3306).
Thank you very much, you gave the clue I was looking for: "Where user is your username within the VM"
ssh -p 2222 [VM-username]@127.0.0.1
Example, your guest machine(the VM) name is "User", so the command going to be
ssh -p 2222 user@127.0.0.1
Just what I am looking for. Coupled with How To Use Visual Studio Code for Remote Development via the Remote-SSH Plugin, it is possible to hack into Ubuntu via VSCode, without needing head at all.
I am using Installation/MinimalCD as well.
Yes, it's possible. you just have to configure your Remote-SSH Plugin for VSCode and follow this guide as well.