Для шифрования, в основном, используется алгоритм RSA (устар).
Две версии, openssh-client и openssh-server.
Ключи генерируются на хосте с которого нужен беспарольный доступ, затем открытый ключ копируется туда куда нужен беспарольный доступ
Генерируем ключи (pub/priv), утилитой ssh-keygen. Оба файла находятся в ~/.ssh/, содержимое файла .pub нужно скопировать на сервер к которому будем подключаться, в /home/<учетка_для_входа>/.ssh/authorized_keys.
Есть несколько алгоритмов, «rsa» популярный но устаревающий, в данном примере «ecdsa» с длинной ключа 521
# ssh-keygen -t ecdsa -b 521 [либо можно -t rsa -b 4096]
Для копирования открытого ключа есть специальная утилита ssh-copy-id, она сама скопирует нужный файл в нужное место
$ ssh-copy-id -i ~/.ssh/id_ecdsa user@host
Если имеется несколько ключей для разных подключений, нужно указывать полный путь к файлу ключа, после аргумента -i.
$ ssh -i .ssh/mykey
Передать файл по ssh можно либо перенаправив вывод:
# cat ./file.txt ssh user@host "cat >> ./file.txt"
Копирование с удаленной машины, команда scp (порядок файлов мб наоборот)
# scp [-P 22] user@host:source_file desc_file
Копирование на удаленную машину, команда scp
# scp [-P 22] source_file user@host:desc_file
На клиенте: ~/.ssh/config
Host * ServerAliveInterval 20 TCPKeepAlive no