Can't SSH in as root
I'm using the default installation of openssh-server
for my Ubuntu 14.04 server. I can connect through the console as root like normal, with my username and password. When I try to SSH with the same username/password, however, I repeatedly get Access Denied errors. /var/log/auth.log
reports Failed password for root from <ip address> port <port> ssh2
, but I'm entering the correct password.
Why can't I connect to the server via SSH, even though the username and password ARE correct?
Solution 1:
The default setting in Debian (and hence Ubuntu) for OpenSSH Server is to deny password-based login for root and allow only key-based login. Change this line in /etc/ssh/sshd_config
:
PermitRootLogin without-password
to
PermitRootLogin yes
And restart the SSH server:
sudo service ssh restart
Solution 2:
To me, works changing (Ubuntu 18.04):
sudo nano /etc/ssh/sshd_config
-
PermitRootLogin prohibit-password
toPermitRootLogin yes
-
PasswordAuthentication no
toPasswordAuthentication yes
then, restart ssh service:
sudo service ssh restart
Thanks!
Solution 3:
Hackers will bang away with root user trying to brute force their way in. If you are going to allow root logins, you should definitely install Fail2Ban, or something similar to protect against brute force attacks. Also use a very hard to guess password without the use of common words.
And, as Vaindil pointed out, a key based login would be far superior. They are not very hard to setup. Here's a link to setup key-based login using PuTTY on windows: https://devops.profitbricks.com/tutorials/use-ssh-keys-with-putty-on-windows/ . But there are lots of others if you are using a different environment to login from.