238

I just installed Ubuntu. How do I set it up to allow me to ssh into it?

Right now I get "ssh: connect to host x.x.x.x port 22: Operation timed out".

4 Answers 4

312
sudo apt update
sudo apt install ssh
sudo ufw allow 22      # if you have ufw running, but it doesn't hurt to run.

That's the very minimum. It allows unlimited failed password attempts on a known port. Direct root-login is disabled (you can still su and sudo once logged in). If your username and password are guessable and the Internet can see the server, somebody will eventually break in.

I can't stress this enough: You need to harden the default setup. You essentially trade convenience for the likelihood of being hacked but I've gone through several suggestions on my blog. At the very least, I'd suggest:

  • Key-based logins. Disable password logins.
  • Move it off port 22. Use something crazy-high, in the 20000-60000 range.
  • Use fail2ban to ban people who do find it and try to brute it.

It'll take you less than 10 minutes and they take youfrom a 1/10000 chance of being broken in-to a probability so small, there isn't enough paper in the world to write its fraction. All assuming you're careful with your key, it has a passphrase of its own and you don't trumpet your credentials all over the net.

In terms of accessing this SSH server from the Internet, you may be facing local networking obstacles. If the computer is behind a NAT router (eg most home networks) without direct incoming access from the internet, you may need to look at port forwarding. Obviously if you don't need access outside the network, skipping this step will aide network security.

13
  • 9
    Depending on your instance, you may not need sudo ufw allow 22. For example, I've got a simple VirtualBox Ubuntu-Server instance up, with Bridged Networking on a Windows host (for simple dev needs) - no need for opening port 22 (already open), no need for hardening that would potentially close 22, no need to use different port. Mar 20, 2014 at 4:02
  • @Oli - Can you exttend a bit on how fail2ban works? Do you just install it and it automagically starts a daemon for you or does it need configuration?
    – Matteo
    Oct 30, 2015 at 18:55
  • 3
    @Matteo It ships with some defaults for common services (like SSH). In this case, unless you've made serious changes to where your logs are kept, just installing it should be enough.
    – Oli
    Oct 30, 2015 at 21:10
  • 1
    Just FYI sudo apt-get install ssh seems to be the same thing as openssh-server Mar 20, 2016 at 4:52
  • 1
    @Sridhar-Sarnobat, The ssh package is described as the metapackage for both the secure shell client and secure shell server so if you install it you get both dependencies installed. However, the client is already installed in Ubuntu by default so you probably only need to install the server.
    – H2ONaCl
    Jan 24, 2017 at 6:33
25

Installing the openssh-server package which is available from the Software Center will provide the server element to allow a client such as another ubuntu desktop to achieve a secure connection to a 'server' such as your VM.

The ubuntu community has an excellent guide about SSH, OpenSSH-Server and how to configure it in a secure manner.

0
4

Configure SSH Services or Enable SSH Server services on Ubuntu server:

For install or configure SSH on Ubuntu first you need to install SSH packages on Ubuntu server so you next you able to take your virtual machine on your host system via Putty or other SSH login patch...

first you need to install SSH package on Ubuntu so run this command

#sudo apt-get install openssh-server

some time you guyzz got some errors while installing or add this package on your server like..

CDROM Error while install package SSH so for resolve this issue you can you my another shortcut available on Mounting CDROM Finally after mounting this CDROM on Ubuntu server you now easly install SSH service by below command

#sudo apt-get install openssh-server

This package install now and during installation ask for yes / no ans then hit YES...

Finally the SSH package install on Ubuntu sever then restart the SSH services by following command..

#sudo service ssh restart
---OR type---
#sudo service ssh start

Then BooM your SSH have install and start SuccessFully... now open Putty from your local host machine and type your VM IP there Putty Login And BOOM you able to login your VM server trough host machine Putty SSH...

3

I just wanted to add that you need to make sure you have picked the correct WAN interface, if your modem/router support multiple WAN interfaces.

I have a Billion BiPAC 7800NXL which has 3 possible WAN ports (DSL, ETH and 3G). When you create a new forwards (called a "Virtual Server" in this router), the 7800NXL always defaults to the DSL WAN interface, even though I only use the Ethernet WAN interface.

I had all the ports set up correctly, but my forward was configured to use DSL, so it didn't work. As soon as I created a new forward for the ETH WAN interface, it worked.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .