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