Linux debian ssh key

Как установить ключи SSH на Debian 9

SSH (или secure shell, безопасная оболочка) — это зашифрованный протокол, который используется для администрирования и взаимодействия с серверами. Если у вас сервер с Debian на борту, то, скорее всего, большую часть времени вы используете терминал с подключением к серверу по SSH.

Из этой статьи вы узнаете, как установить ключи SSH на Debian. Ключи SSH — это простой и надежный способ подключения к серверу; его можно рекомендовать всем пользователям.

Шаг 1: создание ключевой пары RSA

Сначала нужно создать ключевую пару на клиентской машине (как правило, это ваш компьютер):

По умолчанию команда создаст пару RSA-ключей длиной 2048 бит — для большинства случаев такой длины хватает, но если вы хотите создать ключи длиной 4096 бит, то нужно добавить к команде -b 4096.

После введения команды вы должны увидеть примерно такой вывод:

Generating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):

Нажмите Enter для того, чтобы сохранить ключевую пару в поддиректорию .ssh/ в вашем домашнем каталоге (либо выберите какой-то другой путь).

Если вы уже создавали ключевую пару ранее, то вы можете увидеть следующее:

/home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?

Если выбрать перезапись (y), то вы не сможете больше использовать предыдущую ключевую пару для авторизации. Поэтому будьте внимательны, потом изменить и вернуть обратно предыдущие ключи будет нельзя.

Enter passphrase (empty for no passphrase):

Здесь вы можете опционально добавить кодовую фразу (рекомендуется это сделать). Это будет еще один дополнительный уровень защиты от несанкционированной авторизации.

Your identification has been saved in /your_home/.ssh/id_rsa. Your public key has been saved in /your_home/.ssh/id_rsa.pub. The key fingerprint is: a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host The key's randomart image is: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+

Теперь у вас есть два ключа, публичный и приватный, которые вы будете использовать для авторизации. Далее публичный ключ нужно будет поместить на сервер.

Шаг 2: копирование ключа на сервер

Самый быстрый способ скопировать публичный ключ — это использовать утилиту ssh-copy-id. Этот способ простой и поэтому самый предпочтительный из всех существующих. Если на вашей машине нет возможности использовать эту утилиту, воспользуйтесь другим способом, о котором будет рассказано ниже.

Копирование с использованием ssh-copy-id

ssh-copy-id по умолчанию есть во многих операционных системах, так что, скорее всего, у вас она тоже есть. Для того, чтобы использовать этот способ, у вас должен быть настроен SSH-доступ на сервер с использованием пароля.

Читайте также:  Определить тип файла линукс

Далее вам нужно будет указать удаленный хост, к которому вы хотите подсоединиться, и пользовательский аккаунт, который вы используете для авторизации с паролем. Синтаксис команды:

$ ssh-copy-id имя_пользователя@удаленный_хост

Вы можете увидеть следующее сообщение:

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

Это значит, что локальный компьютер не узнает удаленный хост (такое происходит, когда вы первый раз подключаетесь к новому хосту). Просто напишите “yes” и нажмите Enter.

Далее утилита просканирует аккаунт, чтобы найти ключ id_rsa.pub, который был создан ранее. Как только ключ будет найден, вам нужно будет ввести пароль для удаленного пользователя:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:

Введите пароль и нажмите Enter. Утилита подключится к удаленному хосту и скопирует содержимое ~/.ssh/id_rsa.pub в файл authorized_keys, который будет находиться в домашней директории аккаунта ~/.ssh.

Вы должны увидеть вот такой вывод:

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@203.0.113.1'" and check to make sure that only the key(s) you wanted were added.

Итак, ключ был скопирован, и вы можете переходить к шагу 3.

Копирование ключа вручную

Если вы не можете использовать ssh-copy-id (или у вас нет возможности подключиться к серверу через SSH с использованием пароля), то вам нужно будет выполнить процесс вручную.

Сначала выведите содержимое ключа id_rsa.pub:

Вывод будет выглядеть примерно вот так:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

Подключитесь к удаленному хосту любым доступным способом.

Теперь надо создать директорию ~/.ssh. Введите команду ниже (если директория уже существует, то ничего не произойдет):

Теперь вы можете создавать или изменять файл authorized_keys внутри этой директории. Что нужно сделать: добавьте содержимое файла id_rsa.pub в конец файла authorized_keys (создав его, если он отсутствует):

$ echo содержимое_ключа >> ~/.ssh/authorized_keys

Наконец, нужно убедиться, что директория ~/.ssh и файл authorized_keys имеют правильные права доступа:

Если вы используете аккаунт суперпользователя для того, чтобы установить ключи для пользовательского аккаунта, важно, чтобы владельцем директории ~/.ssh был этот пользователь (а не суперпользователь):

$ chown -R имя_пользователя:имя_пользователя ~/.ssh

Теперь нужно попробовать подключиться к серверу без использования пароля.

Шаг 3: авторизация на сервере с использованием SSH-ключей

Если все написанное выше было сделано правильно, то теперь вы можете подключиться к серверу без использования пароля удаленного доступа.

$ ssh имя_пользователя@удаленный_хост

Как уже было сказано, если вы первый раз подключаетесь к этому хосту удаленно, то вы можете увидеть вывод — запрос на подключение (Are you sure you want to continue connecting (yes/no)?) Напечатайте «yes» и нажмите Enter.

Читайте также:  Arch linux как выключить

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

Шаг 4: отключение авторизации с использованием пароля

Если вы смогли подключиться по SSH без использования пароля, это значит, что вы корректно настроили авторизацию с использованием ключей. Однако возможность подключиться к серверу при помощи пароля все еще существует, а значит, сервер все еще может подвергнуться брутфорс-атакам.

Перед выполнением дальнейших действий вам нужно убедиться, что у вас настроена авторизация с использованием ключей для суперпользователя — но будет даже лучше, если вы настроите авторизацию для пользователя с sudo-привилегиями. Крайне важно убедиться в том, что в случае чего вы сможете получить административный доступ.

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

$ sudo nano /etc/ssh/sshd_config

Внутри файла найдите директиву PasswordAuthentication. Если она закомментирована, раскомментируйте ее и поставьте значение “no”:

. PasswordAuthentication no . 

Сохраните и закройте файл, а затем перезапустите sshd:

$ sudo systemctl restart ssh

Перед закрытием сессии откройте терминал в новом окне и протестируйте, что подключение через SSH работает корректно:

$ ssh имя_пользователя@удаленный_хост

Если все хорошо, то все сессии на сервере можно завершить.

Теперь у вас настроен доступ при помощи SSH-ключей, а доступ с использованием пароля отключен.

Источник

Настройка SSH в Debian

Технология SSH или Secure Shell позволяет пользователям подключаться к компьютеру с Linux или серверу удалённо и выполнять на нём команды, так как бы они вводились с клавиатуры непосредственно на нём. Вывод команд тоже передаётся в реальном времени в текстовом режиме, от чего складывается впечатление, что вы работаете непосредственно на той машине, к которой подключены.

В этой небольшой статье мы рассмотрим как настроить SSH в Debian 10 для подключения к системе извне, а также основные параметры на которые стоит обратить внимание.

Установка SSH в Debian

Если во время установки Debian вы выбрали установку SSH сервера, то в готовой системе он будет уже установлен и запущен. Для проверки его состояния выполните:

sudo systemctl status sshd

Если отображается надпись active, running, значит всё хорошо. В противном случае надо установить SSH сервер. Для этого используйте такую команду:

sudo apt install openssh-server ssh

Затем для запуска сервиса выполните:

sudo systemctl start sshd

Если на вашем сервере используется фаервол UFW, то вам надо разрешить удалённое подключение к порту 22:

Установка ssh в Debian завершена. Теперь вы можете попытаться подключится к SSH серверу локально:

При первом подключении надо будет подтвердить добавление ключа сервера в файл ~/.ssh/known_hosts. Затем перед вами откроется приглашение ввода в консоли SSH.

Читайте также:  Astra linux vlan настройка

Настройка сервера SSH

Все настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Перед тем, как его редактировать лучше сделать резервную копию на всякий случай:

sudo cp /etc/ssh/sshd_config

1. Смена порта

Одна из самых частых настроек, которую надо выполнять на большинстве серверов, это смена порта. Если у сервера есть публичный IP адрес, то его сканируют множество ботов, и как только они находят открытый порт 22, то сразу начинают пытаться перебрать пароль. Откройте конфигурационный файл и найдите строчку Port, расскоментируйте её, если нужно:

Затем пропишите нужное значение порта, например 2222:

Для того, чтобы изменения вступили в силу надо перезагрузить SSH сервер:

sudo systemctl restart sshd

Теперь, чтобы подключится к этому серверу надо будет явно указать порт с помощью опции -p:

2. Отключение входа суперпользователя

Чаще всего боты используют для перебора пароля логин суперпользователя. Авторизацию для этого пользователя можно отключить. Перед тем, как это делать убедитесь, что у вас есть в системе ещё как минимум один пользователь от имени которого вы сможете авторизоваться. Затем найдите строку PermitRootLogin и замените её значение на no:

Чтобы разрешить подключение ssh Debian для пользователя root, замените значение этого параметра на yes.

3. Авторизация по ключу

Следующий шаг по обеспечению безопасности вашего сервера — отключить вообще авторизацию по паролю, а использовать только авторизацию по ключу. Подробнее про авторизацию по ключу рассказано здесь. В конфигурационном файле sshd вам надо изменить только несколько строчек:

Сначала найдите строку PubkeyAuthentication и замените её значение на yes:

Перед тем как отключать возможность входа по паролю убедитесь, что вы добавили ключ для авторизации, как это описано в статье выше. Затем замените значения параметров ChallengeResponseAuthentication, PasswordAuthentication, UsePAM на no.

Настройка клиента

Для каждого пользователя можно сделать отдельные настройки клиента SSH. Для этого используется файл .ssh/config. Синтаксис файла такой:

Хост имя_хоста Параметр значение

Таких секций может быть сколько угодно. Сначала надо указать хост, для которого будут применяться настройки, затем параметры для него. Можно создать секцию, которая будет работать для любого хоста, для этого используйте *. Например, чаще всего для подключения по SSH используется пользователь root. Давайте использовать его по умолчанию для всех подключений:

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

Теперь при подключении можно просто набрать:

Выводы

В этой статье мы рассмотрели как установить ssh, а также как выполняется настройка SSH в Debian. Теперь вы знаете основные моменты, которые надо сделать чтобы комфортно пользоваться этим сервисом. А какие настройки SSH делаете вы? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector