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"