SSH change port

Add to sshd configuration
Go to the file
# nano /etc/ssh/sshd_config
and add line
Configure SELinux
# semanage port -a -t ssh_port_t -p tcp 50
Configure Firewall
# firewall-cmd --permanent --remove-service=ssh
# firewall-cmd --permanent --add-port=<SSH_NEW_PORT>/tcp
# firewall-cmd --reload
Restart sshd service
# systemctl restart sshd
# systemctl status sshd.service
Remote access be like
# ssh -p <SSH_NEW_PORT> server@ip

SSH using keys

On your remote device follow these steps.
Generate key
Comparison: TL;DR, use RSA 4096 or ed25519.
$ ssh-keygen -t ed25519
By default, will be stored at /home/user/.ssh/id_ed25519
Generate a passphrase with KeePassXC and use it as passphrase when it asks you for one.
Add it to remote key (server)
$ ssh-copy-id -p <PORT> -i ~/.ssh/id_ed25519 user@remote
This will add the public key (i.e. to the the server file ~./.ssh/authorized_keys
Add passphrase to KeePassXC
Follow this tutorial, so you can add the passphrase for the generated key automatically to the ssh-agent whenever KeePassXC db is unlocked.
Now, passphrase won’t be asked when KeePassXC is unlocked.
Disable ssh with password Open file /etc/ssh/sshd_config and set
PasswordAuthentication no
Next, restart ssh service
$ sudo service ssh restart