Доступ к серверу Debian по SSH

Автор: | 3 февраля, 2025

В прошлой статье мы установили ОС Debian 12.9.0, сегодня расскажу вам, как получить доступ по SSH с использование ключа и так приступим.

Для начала нам нужно скачать клиенты к нашему серверу, в качестве клиента SFTP буду использовать WinSCP (скачать), в качестве терминала буду использовать Putty (скачать), скачайте и установите, подходящие для вашей операционной системы, установочные файлы.

Для начала нам нужно запустить сам сервер Debian и войти под учётной записью Root, далее прописать команду, чтобы узнать наш IP адрес:

ip a 
Выполняем команду ip a

В моём случае интерфейс eth0 с IP адресом 10.0.0.99, запоминаем адрес, далее подключаемся через WinSCP, выбираем протокол передачи SFTP, прописываем адрес сервера, порт по умолчанию 22, буду подключаться под учётной записью ROOT

Настройки подключения WinSCP

Далее жмём принять

Принимаем отпечаток

И что мы видим ? Видим, что доступ запрещён

WinSCP ввод пароля

Всё на этом статью можно заканчивать, ничего не вышло )))) Но не тут то было)))
В данном случае, в целях безопасности отключен доступ через Root пользователя, для этого нужно в конфигурации сервиса SSH включить его ( это не очень безопасно, но я пользуюсь один сервером и принимаю все риски, мне так удобнее работать под Root ).
Так как сейчас доступ по паролю запрещён, нужно его включить, нужно перейти в саму систему Debian и отредактировать файл конфигурации

Воспользуемся встроенным редактором Nano, мне он больше нравится чем Vim

Файл настроек SSH сервера находится по пути

/etc/ssh/sshd_config

Чтобы открыть в редакторе этот файл, напишите в консоли сервера Debian команду:

 nano /etc/ssh/sshd_config

Ищем строчку PermitRoogLogin

PermitRoogLogin

Раскомментируем её (убираем # перед переменной) и в значении пишем Yes

PermitRoogLogin yes

Для выхода из редактора nano жмём Ctrl+X, вводим Y для сохранения и жмём Enter, для того чтобы изменения вступили в силу нужно перезагрузить сервер SSH, команда для перезапуска:

service sshd restart
service sshd restart

Открывает WinSCP и пробуем подключиться, теперь мы вошли по SFTP и видим список файлов

Список файлов

По умолчанию скрытые файлы не отображаются в WinSCP, заходим в настройки/панели и ставим галочку Показывать скрытые файлы, не закрываем WinSCP нам нужно будет добавить ключи.

WinSCP показать скрытые файлы

Следующим шагом будет генерация ключа, по которому мы будет подключаться по SSH и SFTP соответственно, для этого нам понадобится Putty ( Puttygen ), запускаем и жмём Generate

Puttygen генерация SSH ключей

Далее водим мышкой внутри окна, пока полоса не дойдёт до конца и не появится готовый ключ

Puttygen генерация SSH ключей

Тут уже два варианта, вы можете использовать ключ как ключ от входной двери, а можно сделать дополнительную проверку по паролю ( вдруг у вас украдут ключ и смогут войти с ключом в сервер ?), рекомендую задать пароль, при каждой авторизации по ключу будет запрашивать пароль, для этого в поле Key passphrase укажем пароль для ключа и ниже повторяем его в поле Confirm, поле Key comment – будет показано при авторизации ключом, можете написать, что пожелаете или оставить как есть.

Указываем пароль для ключа, поле подтверждения пароля и сохраняем ключи, у вас будут два ключа – один приватный ( хранится у клиента ) и публичный ( хранится на сервере )

Puttygen генерация SSH ключей ввод пароля

После сохранения у вас будут два файла в папке, не закрываем PuTTYgen он нам ещё нужен будет.

Публичные ключи хранятся у каждого пользователя по пути

Папка пользователя/.ssh/authorized_keys в моём случае для Root
Заходим в WinSCP, открываем путь /root/.ssh/ и создаём файл authorized_keys

authorized_keys  создать файл

Теперь нам нужно вписать публичный ключ, копируем его из PuTTYgen и вставляем в созданный файл authorized_keys 

Жмём сохранить файл в WinSCP, теперь можно закрыть окно редактора файла и Puttygen

Теперь нужно изменить права доступа на файл ключа, ниже список типичных настроек прав доступа:

authorized_keys  права доступа

Смотрим в WinSCP права доступа, посмотрев в свойствах публичного ключа

С ключами разобрались, ключ действует в рамках одного пользователя, можно использовать один и тот же ключ для для всех пользователей, но это очень плохая идея и не рекомендую так делать.

Теперь нам нужно обязательно залатать дыры, которые мы сделали, разрешив доступ от Root по паролю, для этого нам нужно отредактировать снова файл SSHD_CONFIG, для простоты буду использовать тот же WinSCP, переходим в папку /etc/ssh/

Как вы помните, мы отредактировали PermitRootLogin в значение YES, она разрешает подключаться от самого главного пользователя Root, многие отключают её, но я на свой страх и риск оставляю как есть в YES, ведь уже буду использовать ключ и подобрать его будет гораздо сложнее. (в общем, можно закомментировать её перед значением поставить # ), но для этого нужно другого пользователя создавать и пользоваться SUDO, но это другая уже другая история 🙂

В общем теперь нам нужно найти строчку

#PasswordAuthentication yes

Раскомментировать её и поменять значение на NO, должно быть как на скрине ниже, тем самым мы запрещаем авторизацию по паролю, мы будем использовать ключ.

Сохраняем и закрываем файл, далее нам нужно перезапустить службу SSH сервера, можно это сделать в самом WinSCP сверху чёрный значок со знаком >

Выполним знакомую команду

service sshd restart
service sshd restart

После этого сервер SSH перезапустится, подключаемся снова, через WinSCP и видим

Ругается, что ключа нет, авторизация по паролю не поддерживается, теперь нужно настроить подключение по ключу, заходим в настройки соединения

И указываем наш приватный ключ, жмём ОК и Сохранить

Теперь при входе просит пароль от созданного нами ключа

Вводим пароль от ключа, подключение успешно, видим файлы

Основная часть сделана, поздравляю вас 🙂

Теперь чтобы подключиться к консоли через SSH нам нужна программа Putty

Прописываем адрес сервера, в Connections / SSH / Auth / Credentials указываем приватный ключ

Теперь переходим в раздел Sessions прописываем имя соединения в Saved Sessions и жмём сохранить

Жмём Open, при запросе жмём принять, далее вводим пароль от приватного ключа, вот и всё теперь вы в консоли сервера.

PS:

При бездействии ваше соединение может разрываться, чтобы этого не было нужно в файле SSHD_CONFIG добавить пару строчек, чтобы сервер проверят соединение, каждые 60 секунд ( ClientAliveInterval ) будет проверять, если в течении 60 проверок ( ClientAliveCountMax ) не проявит активность, то соединение закроется

ClientAliveInterval 60
ClientAliveCountMax 60

Конечно, статью описал с использованием Windows, что не совсем корректно, все манипуляции можно делать в терминале самого Debian, но думаю найдётся кому статья пригодится, спасибо что дочитали до конца 🙂