Установка ssh
- Проинсталлируйте сервер SSH # sudo apt install openssh-server -y
- Включите атозагрузку сервера SSH
#sudo systemctl enable ssh
- Создайте резервную копию файла конфигурации # sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
- Отредактируйте файл конфигурации # sudo nano /etc/ssh/sshd_config
- Строка Port 22 — заменить стандартный порт 22 на доугой. Рекомендуется номер с разными цифрами, например 3546
- PermitRootLogin no — отключение возможности входа через ssh с учетной записью root
- PubkeyAuthentication yes — включение авторизации с помощью ключей ssh
- Создайте учетную запись в системе с соответствующими правами перед перезагрузкой демона ssh, так как войти с учетной записью root вы уже не сможете
- Добавление нового пользователя #sudo adduser <username>
- Установка пароля нового пользователя #sudo passwd <username>
- добавление пользователя в группу sudo #usermod -aG sudo <username>
- Перезапустите ssh #sudo systemctl restart ssh
- Переподключитесь с новой учетной записью #ssh -p <new port> <new login>@<server ip>
Генерация ключа unix
- ssh-keygen -t rsa
Генерация ключа SSH с помощью утилиты PUTTY
- Скачайте и установите утилиту Putty https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- запустите утилиту puttygen от имени администратора
- В окне PuTTY Key Generator нажмите Generate.
- Переместите курсор в серое поле, чтобы заполнить зеленую полосу.
- Сохраните открытый ключ
- Сохраните закрытый ключ
- Откройте меню Conversions наверху
- Нажмите Export OpenSSH key
- Вас спросят, хотите ли вы сохранить ключ без ключевой фразы. Нажмите Да.
- Выберите место для сохранения ключа (обычно это та же папка, что и открытый ключ)
- Дайте ключу имя (например,
putty_key
).
Настройка ssh через ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
где:
- user – пользователь, под которым вы подключаетесь на удалённую машину;
- remotehost – ip-адрес удаленной машины.
-i
— опция указывает путь к вашему публичному ключу, который мы хотим закинуть на удаленный сервер
Эта команда скопирует на удалённый сервер ваш публичный ключ и добавит его в файл ~/.ssh/authorized_keys
. При желании файл ~/.ssh/authorized_keys
на сервере можно создать вручную и скопировать в него содержимое вашего публичного ключа ~/.ssh/id_rsa.pub
.
После этого вы можете проходить авторизацию на сервере по ssh-ключам без ввода пароля:
Если после ssh-copy-id
по-прежнему просит ввести пароль, то нужно проверить права на папке .ssh на сервере. На вашу домашнюю директорию не должны стоять права на запись для остальных пользователей. А на файл authorized_keys должны быть права 600.
Выполните следующие команды:
chmod
g-w
/home/youruser
chmod
700
/home/youruser/
.
ssh
chmod
600
/home/youruser/
.
ssh
/authorized_keys