How to install and configure SSH server on Debian Linux?
Installing and testing the SSH Server
You will need to be root to do the following…
su
-
Install SSH Server
apt install openssh-server
-
Check if the server process exists. This indicates the install went well.
ps -A | grep sshdგამოყვანის (or similar):
1753 ? 00:00:00 sshd -
Install SSH Client to check the SSH Server connection
apt install openssh-clientConnect to localhost to test connection
ssh localhostAlso login with the interface IP address
Get IP Address
ip addrSSH to the ip address
ssh {ipaddress here}
Securing the SSH Server
It is a good idea to secure the SSH server by disallowing root to login and configuring login only by public key i.e. login using passwords is not allowed
Ensure to execute the following commands as your user and not as root
-
Navigate to the user home directory
cd
-
Check if .ssh exists
ls -a
-
If .ssh does not exist, create it
mkdir .ssh
-
Set the folder permission to 700
chmod 700 .ssh
-
Create the authorized_keys file
touch ./.ssh/authorized_keys
-
Change permission on the authorized_keys file to 600
chmod 600 ./.ssh/authorized_keys
-
Open the authorized_keys file
nano ./.ssh/authorized_keys
-
Paste your public key into the file
You can get your public key from the SSH client. If the client is Windows 10 then it will be in the
%USERPROFILE%/.ssh/id_rsa.pubfile. If the client is Debian then the public key is~/.ssh/id_rsa.pub.If your public key does not exist, generate it on the client machine
ssh-keygen -t rsa -C "email@domain.com"
-
Change to root user
su -
Configure your SSH server to accept only public key logins and prevent login for root
nano /etc/ssh/sshd_configUncomment and/or edit the following lines
PermitRootLogin no
StrictModes yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
PasswordAuthentication no
-
Restart the sshd service
service sshd restart
-
Try logging in as root from your SSH client using password
ssh root@{ssh server ip address}გამოყვანის:
Permission denied (publickey). -
Try logging in as username from your SSH client using password
ssh username@{ssh server ip address}გამოყვანის:
Permission denied (publickey). -
Try logging in as root from your SSH client using the public key
ssh root@{ssh server ip address} -i .ssh/id_rsaგამოყვანის:
Permission denied (publickey). -
Log in as username from your SSH client using the public key
ssh username@{ssh server ip address} -i .ssh/id_rsa
If your SSH client has a static IP address then you may want to consider only your IP address can login to the SSH server.
