ssh

Secure Shell.

Usage

Execute command at the remote host

Generally, this is done with

ssh user@ip "cmd"

or

ssh user@ip "cmd1;cmd2;cmd3;...;cmdn"

to execute multiple commands after each other.

Configuration

First, check for existing SSH keys

ls ~/.ssh

If no files are present, generate new SSH keys. This can be done in multiple ways, however ed25519 is preferred.

ssh-keygen -t ed25519

Keys will per default be placed in ~/.ssh.

In general, after changing configurations like the ones below, remember to restart the ssh service by

sudo systemctl restart ssh

Enable key authentication

sudo nano /etc/ssh/sshd_config

Make

PubkeyAuthentication    yes

Copy the generated public key to the server from the client you wish to connect

ssh-copy-id username@ip-address

When that succeeds, password authentication can now be disabled, such that authentication only happens through ssh keys.

Change the following lines to be corresponding to

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Allow / Deny users

Specific users can be allowed/denied adding these lines

AllowUsers alice bob
DenyUsers jane john

Change port

The default port 22 can be changed by editing #Port 22 to Port X. Ports range from 0 to 65535 and ports from 0 to 1023 are reserved for privileged services. While many of the ports above 1023 are also used for known applications it could be a good idea to see if the port is already in use.

X11 forwarding

X11Forwarding should be disabled for security reasons as well.

Last updated