-`Port` (**22**) - порт, через который происходит подключение
-`PermitRootLogin` (yes|**no**) - подключение с использованием `root`-доступа
-`PubkeyAuthentication` (**yes**|no) - подключение с использованием ключа
-`PasswordAuthentication` (yes|**no**) - подключение с использованием пароля
-`PermitEmptyPasswords` (yes|**no**) - подключение с использованием пустого пароля
### Настройка файлов хранения публичных ключей:
Создание каталога в домашней директории пользователя (`/home/user/.ssh`), от которого будет происходить подключение к серверу:
```sh
mkdir ~/.ssh
chmod 700 ~/.ssh
```
Создание файла файла хранения публичных ключей:
```sh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```
### Перезагрузка сервера SSH
Перезагрузка сервера SSH в `Ubuntu`
```sh
sudo systemctl restart sshd
```
В других дистрибутивах:
```sh
sudo service sshd restart
```
```sh
sudo /etc/init.d/sshd restart
```
## Клиент
### Подключение к серверу
Стандартное подключение:
```sh
ssh user@host
```
например, по умолчанию, через `22` порт:
```sh
ssh alexander@192.168.56.150
```
или с другим портом:
```sh
ssh -p 2222 alexander@192.168.56.150
```
или с использованием ключа `~/.ssh/mykey`:
```sh
ssh -i ~/.ssh/mykey alexander@192.168.56.150
```
### Создание ключа
Ключи SSH используют алгоритмы:
- 🚨 `DSA` - это небезопасно и даже больше не поддерживается начиная с версии 7 `OpenSSH`.
- ⚠️ `RSA` - зависит от размера ключа. Если он имеет длину 3072 или 4096 бит, то все хорошо. 1024-битная длина считается небезопасной.
-`CD ECDSA` - зависит от того, насколько хорошо компьютер может генерировать случайное число, которое будет использоваться для создания подписи. Существует также проблема достоверности на кривых NIST, которые используются ECDSA.
- ✅ `Ed25519` - самый рекомендуемый алгоритм с открытым ключом, доступный сегодня.
Создание ключей выполняется через утилиту `ssh-keygen`. По умолчанию создаётся пара 2048-битных ключей `RSA`:
```sh
ssh-keygen
```
или
```sh
ssh-keygen -t rsa
```
Самый рекомендуемый способ создания ключа:
```sh
ssh-keygen -t ed25519
```
Использование дополнительных полей при создании пары ключей SSH RSA:
-`Host` - имя к подключаемому серверу (произвольное название)
-`HostName` - адрес сервера
-`User` - имя пользователя, от которого происходит подключение
-`Port` - порт, по которому происходит подключение
-`IdentityFile` - файл ключа, если подключение происходит с использованием ключа SSH
### Копирование ключа на сервер
После создания ключа `~/.ssh/mykey` необходимо зарегистрировать (добавить) его публичную версию `mykey.pub` на подключаемый сервер с использованием `ssh-copy-id`:
```sh
ssh-copy-id -i ~/.ssh/mykey.pub user@host
```
Добавление ключа с использованием дополнительных опций: