enhances security using cryptographic keys instead of passwords for accessing remote systems, ensuring a more secure and efficient login process.

Client

Key Generation

generate a key pair with ssh-keygen.

and chose if you want a passphrase

after import the public key to the server with ssh-copy-id <username>@<host>

and put the password for the last time

Configuration

Here is the $HOME/.ssh/config{: .filepath}.

Host <name>
    HostName <host>
    HostKeyAlgorithms +ssh-rsa
    Port <port> # neded only if port != 22
    User <username>

after you can simply ssh <name>

Server

Keypair Only Authentication

change in /etc/ssh/sshd_config{: .filepath}.

And Use Keypair Authentication

PasswordAuthentication no

Or Force Only Root

PermitRootLogin prohibit-password

Additionaly Disale Password Authentication Module

UsePAM no 

and after restart it with sudo systemctl restart ssh