61

So I am trying to get ssh working on my server. I can connect on my local network with the local ip address of the server perfectly fine. When I try to connect remotely (through a domain name that I set-up for the server, which I know works) I get this connection refused error:

ssh: connect to host bahhudson.mine.nu port 22: Connection refused

From the research I have done into the problem it looks like something is going wrong with my router. I have configured port-forwarding, but that's the only think I can think is causing the "Connection Refused" error... My router is a WRT120N and I have configured it for port-forwarding based on Portforward.com, which seems somewhat outdated since some of those images are not exactly like what my router settings look like, but I have tried multiple ways for setting the portforwarding up, and I know that forwarding for port 80 works because my server has HTTP access which is working...

Also VPN access was getting blocked in what I believe to be a similar way, so the solution to the SSH port 22 being blocked might also be similar to that of the VPN being blocked as well.

Any ideas?

Thanks!

bahudso
  • 613

10 Answers10

45

Just to share. (might be with different configuration)

In my case, I found that that error can happen because I have not install openssh-server in the other machine.

After I install openssh-server in the other machine, the problem:

ssh: connect to host 192.168.XXX.XXX port 22: Connection refused

is solved.

Santosa Sandy
  • 836
  • 10
  • 23
37
  1. First check openssh-server installed in that system.

  2. check the status of ssh service, make ssh service start.

     sudo service ssh status    
     sudo service ssh start
    
  3. Check whether port 22 in that system is blocked by iptables. Just allow port in iptables and then check.

     sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
    
  4. Else change port number of ssh from 22 to 2222 by editing

     vi /etc/ssh/sshd_config         
     /etc/init.d/ssh restart.
    
pravin09
  • 556
28

Your ISP may block connections to port 22 (nothing you or your router can do about it). Just set SSHd to run on a different port, e.g. 2222.

In /etc/ssh/sshd_config, change Port 22 to Port 2222 and then sudo service ssh restart. Port forward 2222 (or whatever), and try again.

ish
  • 141,990
10

I solved this problem by reinstalling openssh-server as follows:

sudo apt-get purge openssh-server 
sudo apt-get install openssh-server
8

Check the SSH service status and start the SSH service if it is stopped:

sudo service ssh status

In my case SSH was stopped, but after starting the service:

sudo service ssh start

I can be able to remote login to Linux.

user.dz
  • 49,176
1

I got the same error, but, after restarting my computer, everything worked again.

So, you may want to give it a try before reinstalling some components.

0

If it's your own private server, your best course of action is to start simple and not complicate things. Since you cannot access your machine via SSH, you can login to your provider hosting the Ubuntu server and reboot the machine from there. After rebooting, try logging back in via console (or putty) with ssh user@ip-address again.

i m y
  • 101
0

The other likely cause is that the proxy in between the terminal-session and the host-server needs userid-password access, that it is rejecting to allow the traffic flow, this is due to a network-firewall or ssl-socks etc.

Vijay-H
  • 11
0

The solution will be by adding the port number of your server preceded with "-p":

Example of the command line:

ssh -L localport:127.0.0.1:localport username@ServerIP **-p** **serverport**
Zanna
  • 72,312
0

Just go to whm then open Host Access Control Change as follows

sshd ALL allow

Arshid KV
  • 101