Вход по SSH на сервер
Эта статья часть инструкции, по настройке локального сервера, без статического белого IP адреса, с доступом из интернет по имени домена, на сервере устанавливаем Docker и Parteiner.
Переходите по ссылке в оглавление чтоб увидить все части этой инструкции.
После того как вы установили Debian 12 на виртуальную машину, необходимо обеспечить безопасный вход по SSH на сервер. Настроим доступ к серверу для обычного пользователя и пользователя root. Пользователи root и обычные, пользователи, смогут подключаться по SSH к серверу только с использованием ключа защищённого парольной фразой.
Программу для подключения рекомендую использовать Putty, в моём случае это версия с русской локализацией, только для того чтоб вам было наглядно и понятно.
Для подключения к серверу используйте только последнюю официальную версию PuTTY, без каких-либо локализаций. В локализованных версиях программы содержаться ошибки и не весь функционал работает должным образом. Например, в версии putty - 0.73-RU-17 не работает вход на сервер по ключу с паролем.
После установки операционной системы Debian в виртуальную машину, доступ по SSH к серверу есть только из локальной сети, это облегчает первоначальную настройку подключения, мы сможем подключиться к серверу, не опасаясь, что наша парольная фраза будет скомпрометирована.
В рабочей директории PuTTY вы найдете утилиту puttygen, запустите ее для генерации ключей с парольной фразой. Создайте в корне любого диска каталог, в котором вы будите хранить сертификаты, ключи SSH. Для удобства создайте для каждого сервера индивидуальную папку, с подпапками назовите их по аналогии с именем пользователя на вашем сервере. Все названия делайте только латинскими буквами.
В программе puttygen, нажмите кнопку «Генирировать» двигайте мышкой пока ваша пара ключей не будет готова. Удалите значение из поля «комментарий» там указывается дата генерации ключа, вы можете по желанию написать там все что вам хочется, как пример приветственную фразу. В полях «Парольная фраза» и «Повторить пароль» разместите ваш пароль из 32 символов. Нажмите на «Открытый ключ» и сохраните ключ под названием «authorized_keys» для пользователя.
Теперь нажмите на «Личный ключ» и сохраните его под названием «id_rsa» для пользователя.
Закройте окно генератора ключей. Запустите снова генератор и повторите все шаги, для пользователя ROOT.
Подключитесь к вашему серверу при помощи PuTTY, в окне подключения укажите только IP адрес и нажмите кнопку соедениться. На предупреждения о бреши в безопасности дайте ответ да. В окне авторизации введите имя пользователя и пароль. Используйте правую кнопку мыши чтоб не набирать пароль и логин вручную, при вводе пароля он не будет отображаться, вам нужно после клика правой кнопкой нажать «enter» на клавиатуре.
Предварительно сохраните конфигурацию SSH
# cp /etc/ssh/sshd_config /home/ВАШ ПОЛЬЗОВАТЕЛЬ/sshd_config.backup
Откроем доступ по SSH для пользователя
Убедитесь, что вошли в систему под обычным пользователем, в терминале об этом значок ~$
Выполните команды, заменив текст ВАШ ПОЛЬЗОВАТЕЛЬ на имя пользователя вашего сервера.
Обратите внимание!
Лишних пробелов быть не должно /ВАШ ПОЛЬЗОВАТЕЛЬ/.
$ mkdir ~/.ssh
$ cd /home/ВАШ ПОЛЬЗОВАТЕЛЬ/.ssh
проверим какие файлы есть в каталоге .ssh , выполните команду:
$ ls -la ~/.ssh/
Внесите значения ключа в файл
$ nano authorized_keys
Значения для ввода берите из файла id_rsa.ppk , вы создали это файл на этапе генерации ключа с парольной фразой для пользователя.
Это файл открывайте в программе puttygen, через меню «Файл» - «Загрузить личный ключ», введите ваш пароль от ключа, в поле Ключ промотайте мышкой значения вниз и выделите все значения потянув левой кнопкой в верх.
Поле с значениями подсветится, отпустите левую кнопку мыши и по правому клику мышкой в появившемся диалоге нажмите «копировать», скопированные значения вставьте в окно PuTTY по правому клику мышки. Чтоб сохранить значения нажмите, сочетание клавиш CTRL + X далее SHIFT + Y сохраните файл под предложенным именем.
Посмотрите, что значения записаны в файл командой
~$ cat authorized_keys
Права доступа на файл
$ chmod 700 /home/ВАШ ПОЛЬЗОВАТЕЛЬ/.ssh
$ chmod 600 /home/ВАШ ПОЛЬЗОВАТЕЛЬ/.ssh/authorized_keys
Теперь нужно получить «root» доступ к системе, сделаем это командой:
$ su -
Обратите внимание что команда пишется именно с дефисом через пробел.
Введите пароль «root»
Вы увидите стандартную решётку «#» в терминале означающую что у вас есть «root» привилегии.
Вносим изменения в «sshd_config»
# nano /etc/ssh/sshd_config
Добавим следующие значение «PermitRootLogin without-password», в секцию
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
Следом за значением, #MaxSessions 10
Получиться вот так
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
PermitRootLogin without-password
Сохраним файл конфигурации
Вы уже создали для root файлы ключей с паролем.
Обратите внимания на пути в командах, они отличны от путей обычного пользователя. Выполните следующие команды:
# mkdir ~/.ssh
Возможно вы получите сообщение
# mkdir: невозможно создать каталог «/root/.ssh»: Файл существует.
Это значит у вас уже есть каталог .ssh в директории пользователя root
Убеждаемся, что каталог .ssh создан и пустой:
# ls -la ~/.ssh/
Создаём файл приватного ключа, следующей командой:
# nano ~/.ssh/authorized_keys
Значения для файла берем из файла id_rsa.ppk. При помощи утилиты puttygen.
Заполняем файл значениями ключа, сохраняем изменения при выходе.
Проверим, что файл authorized_keys создан:
# ls -la ~/.ssh/
# cat ~/.ssh/authorized_keys
Настройки безопасности. Вот нужные команды:
# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/authorized_keys
Отредактируйте файл «sshd_config», внеся в него следующее правки:
# nano /etc/ssh/sshd_config
Закрыть авторизацию по обычным имени и паролю:
Найдите строку «#PasswordAuthentication yes» чуть ниже где есть свободное место допишите новый параметр:
PasswordAuthentication no
Найдите строку «#PubkeyAuthentication yes» чуть ниже где есть свободное место допишите новый параметр:
PubkeyAuthentication yes
Значения нужно внести без знака решотки #
Сохраните конфигурацию
Теперь можно перезагрузить службы и авторизоваться по ключу и паролю, перезапускаем ssh server:
# systemctl restart ssh || systemctl restart sshd
Не закрывая текушего соеденения, чтоб не потерять доступ к серверу в случае ошибки в настройках. Откройте новую сессию SSH и пробуйте авторизоваться без ключа с паролем и если получите ошибку в авторизации пробуйте вход с ключем и парольной фразой. Сделайте это для обычного пользователя и пользователя root. Система должна вас не пропустить. Теперь пробуйте авторизоваться с ключем и парольной фразой, обычным пользователем и пользователем root. Только в случае удачной авторизации первоначальную настройку SSH можно считать выполненной. Теперь вы можите авторизоваться как root и использовать привелигированные полномочия в системе, для настройки.
Настройте «SUDO» следующим образом.
Авторизуемся как пользователь «root» или используем команду «su –»
Установите в систему «sudo» следующей командой:
# apt-get install sudo --fix-missing
Следующая команда может отличаться для разных сборок Linux, я привожу пример для Debian подобных систем. Для систем схожих с CentOS команда будет отлична, «sudo» поменяйте на «wheel»:
# usermod -a -G sudo ВАШ ПОЛЬЗОВАТЕЛЬ
Эта команда добавит вашего пользователя в группу «sudo»
Выключите ваш сервер командой
# shutdown -h now
Создайте резервную копию сервера, по инструкции из первой части статьи.
Читайте продолжение в следующей части.