Настройка ssh debian 10 по ключу

Обновлено: 04.07.2024

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

В этой статье описывается, как сгенерировать ключи SSH в системах Debian 10. Мы также покажем вам, как настроить аутентификацию на основе ключа SSH и подключиться к удаленным серверам Linux без ввода пароля.

Создание ключей SSH в Debian

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

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

Если вывод команды, приведенной выше, содержит что-то вроде No such file or directory или no matches found , это означает, что у вас нет ключей SSH, и вы можете перейти к следующему шагу и сгенерировать новую пару ключей SSH.

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

Создайте новую 4096-битную пару ключей SSH с вашим адресом электронной почты в качестве комментария, введя следующую команду:

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

Нажмите Enter чтобы принять расположение и имя файла по умолчанию.

Затем вам будет предложено ввести безопасную парольную фразу. Если вы хотите использовать кодовую фразу, решать вам. Кодовая фраза добавляет дополнительный уровень безопасности.

Если вы не хотите использовать кодовую фразу, просто нажмите Enter .

В целом взаимодействие выглядит так:

Чтобы убедиться, что пара ключей SSH была сгенерирована, выполните следующую команду:

Команда выведет список ключевых файлов:

Скопируйте открытый ключ на сервер

Выполните следующую команду на своем локальном компьютере:

Вам будет предложено ввести пароль remote_username :

После аутентификации пользователя содержимое файла открытого ключа (

/.ssh/id_rsa.pub ) будет добавлено к файлу удаленного пользователя

/.ssh/authorized_keys , и соединение будет закрыто.

Если ssh-copy-id недоступна на вашем локальном компьютере, используйте следующую команду для копирования открытого ключа:

Войдите на сервер с помощью ключей SSH

На этом этапе вы должны иметь возможность войти на удаленный сервер без запроса пароля.

Чтобы проверить это, попробуйте подключиться к серверу по SSH:

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

Отключение аутентификации по паролю SSH

Чтобы добавить дополнительный уровень безопасности к вашему серверу, вы можете отключить аутентификацию по паролю SSH.

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

Войдите на свой удаленный сервер:

Откройте файл конфигурации SSH-сервера /etc/ssh/sshd_config :

Найдите следующие директивы и измените их следующим образом:

После этого сохраните файл и перезапустите службу SSH:

На этом этапе аутентификация на основе пароля отключена.

Выводы

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

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

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

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

1: Создание пары RSA-ключей

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

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

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

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

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

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

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

После этого вы увидите:

Enter passphrase (empty for no passphrase):

Здесь можно ввести сложную парольную фразу, которую настоятельно рекомендуется использовать. Она добавляет уровень безопасности для предотвращения входа в систему неавторизованных пользователей. Чтобы узнать больше о безопасности, ознакомьтесь с нашим мануалом Настройка аутентификации на основе SSH-ключей на сервере Linux.

Вы увидите такой вывод:

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=++. |
+-----------------+

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

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

Самый быстрый способ скопировать открытый ключ на хост Debian –использовать утилиту ssh-copy-id. Этот метод очень прост, потому используйте эту утилиту, если у вас она есть. Если на вашем клиентском компьютере нет ssh-copy-id, вы можете использовать один из двух альтернативных методов, перечисленных в этом разделе ниже (копирование через парольную аутентификацию SSH или копирование ключа вручную).

Копирование ключа с помощью ssh-copy-id

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

Чтобы использовать эту утилиту, нужно просто указать удаленный хост, к которому вы хотите подключиться, и учетную запись пользователя, к которой у вас есть SSH- доступ. На эту учетную запись будет скопирован ваш открытый ключ SSH.

Утилита использует такой синтаксис:

Вы увидите такой вывод:

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.

На данный момент ваш ключ id_rsa.pub скопирован в удаленную учетную запись. Переходите к разделу 3.

Копирование открытого ключа по SSH

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

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

/.ssh существует в удаленной учетной записи, а затем проверить его содержимое.

Используйте символ перенаправления >>, чтобы добавить данные в файл, а не перезаписывать файл. Это позволит вам добавлять в файл ключи, не удаляя ранее добавленные данные.

Команда выглядит так:

/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p

/.ssh/authorized_keys && chmod -R go=

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 будет скопировано в конец файла authorized_keys удаленного пользователя. Если все получилось, переходите к разделу 3.

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

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

Вам нужно будет вручную вставить содержимое файла id_rsa.pub в файл

/.ssh/authorized_keys на удаленной машине.

Чтобы отобразить содержимое 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 с помощью этой команды:

Если файл authorized_keys не существует, команда его создаст.

В приведенной выше команде замените public_key_string выводом команды cat

Теперь нужно убедиться, что каталог

/.ssh и файл authorized_keys имеют необходимые права доступа.

Это заблокирует доступ к каталогу

/.ssh/ для всех групп и других пользователей.

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

/.ssh принадлежал целевому пользователю, а не root:

chown -R 8host:8host

Теперь можно проверить, как работает беспарольная аутентификация на сервере Debian.

3: Аутентификация по SSH-ключам

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

Если вы впервые подключаетесь к этому хосту (например, если вы копировали ключ вручную), вы можете увидеть такое предупреждение:

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.

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

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

4: Отключение парольной аутентификации

Если вы смогли войти в свою учетную запись без пароля, с помощью только SSH-ключей, вам лучше бы отключить механизм парольной аутентификации, чтобы защитить сервер от brute-force атак.

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

Убедившись, что ваша удаленная учетная запись имеет необходимые привилегии, войдите на свой удаленный сервер с помощью SSH-ключей (либо с правами администратора, либо через пользователя с привилегиями sudo). Затем откройте файл конфигурации демона SSH:

sudo nano /etc/ssh/sshd_config

Внутри файла найдите директиву PasswordAuthentication. Она может быть закомментирована. Раскомментируйте эту строку и установите значение «no». Это отключит возможность входа в систему через SSH с использованием паролей учетных записей:

Сохраните и закройте файл. Чтобы обновить настройки, необходимо перезапустить сервис sshd:

sudo systemctl restart ssh

В качестве меры предосторожности откройте новое окно и проверьте работу сервиса SSH:

После того как вы подтвердили работу сервиса SSH, можете закрыть все текущие сеансы сервера.

Теперь демон SSH на сервере Debian поддерживает только аутентификацию по SSH-ключам. Парольная аутентификация успешно отключена.

Заключение

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

Ранее мы рассматривали как обезопасить доступ к вашему оборудованию через OpenSSH и приводили необходимые меры. Как показывает практика этого недостаточно для того чтобы доступ к вашему оборудованию был надежен. Поэтому для увеличения безопасности от несанкционированного доступа мы добавим SSH авторизацию по ключу при подключении по SSH. Пример использования как всегда на ОС Debian 9.

Предисловие

Настроив SSH авторизацию по ключу, вы не только улучшите безопасность сервера, но и еще немного упростите себе жизнь. Вместо использования паролей, которые легко перехватить кейлоггером, в процессе SSH авторизации на сервере мы будем использовать RSA ключи. Для обеспечения хорошего уровня безопасности будет достаточно использовать длину ключа равной 2048 бит. Чтобы усложнить кражу, желательно хранить секретный ключ на зашифрованном разделе вашей системы.

1. Настройка OpenSSH

Все настройки сервера OpenSSH хранятся в файле /etc/ssh/sshd_config. Откроем файл для редактирования и внесем настройки:

2. Генерация и размещение ключей

Если вы решили настроить на вашем сервере SSH авторизацию по ключу, первое, что необходимо сделать — это сгенерировать секретный и публичный RSA-ключи. Под Linux для генерации ключей я буду использовать ssh-keygen, для Windows есть утилита PuTTYgen.

2.1 Генерация ключей в Linux

Авторизуемся под пользователем для которого создаем ключи:

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

Записываем созданный ключ:

Копируем себе файл id_rsa, и удаляем его на сервере. Так же удаляем и id_rsa.pub. Далее переходим в раздел Настройка SSH авторизации по ключу в PuTTY для создания файла .ppk.

2.2 Генерация ключей в PuTTYgen

Думаю, что с генерацией ключей в PuTTYgen проблем быть не должно. Запускаете программу, нажимаете Generate и потом начинаете беспорядочно водить курсор по экрану. Затем копируете публичный ключ из поля ‘Public key for pasting into OpenSSH authorized_keys file’ и жмете Save private key, чтобы сохранить публичный и приватный ключ. После генерации, публичный ключ копируется в файл

/.ssh/authorized_keys на сервере, а секретный ключ остается храниться на локальном компьютере.

После проделанного в домашней директории пользователя появятся два файла id_rsa — секретный ключ, id_rsa.pub — публичный ключ. Скопируйте в надежное место файл секретного ключа, а публичный ключ перенесите на сервер.

Заносим сгенерированный нами открытый ключ в авторизованные ключи сервера. Для этого скопируйте содержимое id_rsa.pub в конец файла authorized_keys:

Установим права:

Настройка SSH авторизации по ключу в Linux

Для SSH авторизации по ключу в Linux, создайте файл

/.ssh/config и скопируйте в него строки ниже. Затем по аналогии укажите адрес сервера и расположение файла секретного ключа:

Установите права на файл:

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

Настройка SSH авторизации по ключу в PuTTY

Если ключ id_rsa сгенерирован в Linux, нужно перевести его в формат .ppk с помощью утилиты PuTTYgen. Открываете утилиту PuTTYgen, выбираете меню Conversion -> Import key. Выбираете свой файл id_rsa и нажимаете Save private key:

SSH авторизация по ключу в Debian

Для авторизации по ключу в PuTTY укажите расположение ключа в меню Connetction -> SSH -> Auth -> Private key file for authentication.

SSH авторизация по ключу в Debian

Теперь при подключении вам нужно будет вводить не пароль пользователя системы, а пароль от вашего ключа. Удобство заключается в том, что можно создать один публичный ключ и разместить его на десятке серверов. Теперь вместо того, чтобы помнить 10 разных паролей, достаточно помнить всего один и хранить его и секретный ключ в надёжном месте, исключающем доступ посторонних лиц.

Использование ключей для авторизации не отменяет ввода пароля пользователя при вызове команды sudo !

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

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

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

Настраиваем SSH в Debian

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

Установка SSH-server и SSH-client

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

Переход к терминалу для дальнейшей установки SSH в Debian

Ввод команды в терминале для установки сервера SSH в Debian

Подтверждение команды для установки сервера SSH в Debian

Уведомление о завершении инсталляции сервера SSH в Debian

Команда для установки клиентской части SSH в Debian

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

Управление сервером и проверка его работы

Вкратце давайте остановимся на том, как осуществляется управление установленным сервером и проверка его работы. Это необходимо сделать еще до того, как переходить к настройке, чтобы убедиться в корректности функционирования добавленных компонентов.

  1. Используйте команду sudo systemctl enable sshd , чтобы добавить сервер в автозагрузку, если это не случилось автоматически. В случае надобности отмены запуска вместе с операционной системой используйте systemctl disable sshd . Тогда для ручного запуска понадобится указывать systemctl start sshd .

Команда для добавления сервиса SSH в Debian для автозагрузки

Ввод пароля при добавлении сервиса SSH в Debian для автозагрузки

Команда для подключения к локальной сети через SSH в Debian

Подтверждение подключения к локальной сети через SSH в Debian

Добавление пары ключей RSA

Подключение от сервера к клиенту и наоборот через SSH осуществляется путем ввода пароля, однако можно и даже рекомендуется создать пару ключей, которая будет разработана через алгоритмы RSA. Этот тип шифрования позволит создать оптимальную защиту, которую будет сложно обойти злоумышленнику при попытке взлома. На добавление пары ключей потребуется всего несколько минут, а выглядит это процесс так:

Запуск команды для генерации двух пар ключей при настройке SSH в Debian

Ввод расположения для хранения двух пар ключей SSH в Debian

Ввод ключевой фразы для доступа к ключам при настройке SSH в Debian

Подтверждение ввода ключевой фразы для настройки SSH в Debian

Успешное создание двух пар ключей при настройке SSH в Debian

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

Копирование открытого ключа на сервер

В Debian существует три варианта, с помощью которых можно скопировать открытый ключ на сервер. Мы предлагаем сразу ознакомиться со всеми ними, чтобы в будущем выбрать оптимальный. Это актуально в тех ситуациях, когда один из методов не подходит или не удовлетворяет потребности юзера.

Способ 1: Команда ssh-copy-id

Начнем с самого простого варианта, подразумевающего использование команды ssh-copy-id. По умолчанию эта утилита уже встроена в ОС, поэтому в предварительной инсталляции не нуждается. Синтаксис ее тоже максимально прост, а от вас потребуется выполнить такие действия:

    В консоли введите команду ssh-copy-id username@remote_host и активируйте ее. Замените username@remote_host на адрес целевого компьютера, чтобы отправка прошла успешно.

Стандартная команда для копирования публичного ключа в SSH в Debian

Подтверждение первого подключения к серверу SSH в Debian при копировании ключей

Информация об успешном копировании ключа SSH в Debian стандартным способом

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

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.

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

Способ 2: Экспорт ключа через SSH

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

/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p

/.ssh/authorized_keys && chmod -R go=

Копирование ключей SSH в Debian через стандартную команду

На экране должно появиться уведомление

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)? .

Способ 3: Ручное копирование ключа

Этот метод подойдет тем пользователям, у кого нет возможности создать удаленное подключение к целевому компьютеру, однако имеется физический доступ к нему. В таком случае ключ придется переносить самостоятельно. Для начала определите сведения о нем на серверном ПК через cat

Определение номера ключа для дальнейшего ручного копирования SSH в Debian

В консоли должна отобразиться строка ssh-rsa + ключ в виде набора символов== demo@test . Теперь можно перейти к другому компьютеру, где следует создать новую директорию, введя mkdir -p

/.ssh . В ней же добавляется текстовый файл под названием authorized_keys . Осталось только вставить туда определенный ранее ключ через echo + строка публичного ключа >>

/.ssh/authorized_keys . После этого аутентификация будет доступна без предварительного ввода паролей. Осуществляется это через команду ssh username@remote_host , где username@remote_host следует заменить на имя необходимого хоста.

Подключение к удаленному компьютеру для дальнейшего переноса ключа SSH в Debian

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

Отключение аутентификации по паролю

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

    Откройте конфигурационный файл /etc/ssh/sshd_config через любой удобный текстовый редактор, это может быть, например, gedit или nano.

Запуск текстового редактора для настройки конфигурационного файла SSH в Debian

Нахождение строки, отвечающей за аутентификацию по паролю SSH в Debian

Сохранение изменений после настройки аутентификации по паролю SSH в Debian

Подтверждение сохранения конфигурационного файла SSH в Debian

Выход из текстового редактора после настройки конфигурационного файла SSH в Debian

Перезапуск SSH в Debian после внесения изменений в конфигурационный файл

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

Настройка параметра межсетевого экрана

В завершение сегодняшнего материала хотим рассказать о настройке межсетевого экрана, который будет использован для разрешений или запрещений соединений. Мы пройдемся только по основным пунктам, взяв за пример Uncomplicated Firewall (UFW).

    Для начала давайте просмотрим список существующих профилей. Введите sudo ufw app list и нажмите на Enter.

Просмотр списка открытых подключений межсетевого экрана для SSH в Debian

Ввод пароля при просмотре списка подключений межсетевого экрана SSH в Debian

Нахождение строки SSH в Debian при изучении правил межсетевого экрана

Добавление SSH в Debian для межсетевого экрана для разрешения подключений

Включение межсетевого экрана после внесения изменений SSH в Debian

Просмотр статуса межсетевого экрана для отслеживания SSH в Debian

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Favorite

Добавить в избранное

Главное меню » Debian » Как настроить SSH ключи в Debian 10

(1 оценок, среднее: 5,00 из 5)

Как настроить SSH ключи в Debian 10

Основанные на пароле и открытом ключе два наиболее распространенных механизма аутентификации.

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

В этой статье описывается, как генерировать ключи SSH в системах Debian 10. Мы также покажем вам, как настроить аутентификацию на основе ключей SSH и подключаться к удаленным серверам Linux без ввода пароля.

Создание ключей SSH в Debian

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

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

Если вывод команды выше содержит что-то вроде No such file or directoryили no matches found, это означает, что у вас нет ключей SSH, и вы можете перейти к следующему шагу и сгенерировать новую пару ключей SSH.

В противном случае, если у вас есть пара ключей SSH, вы можете использовать их или создать резервную копию старых ключей и сгенерировать новые.

Сгенерируйте новую пару ключей SSH 4096 бит с вашим адресом электронной почты в качестве комментария, введя следующую команду:

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

Нажмите Enter, чтобы принять местоположение файла по умолчанию и имя файла.

Далее вам будет предложено ввести безопасную фразу-пароль. Хотите ли вы использовать фразу-пароль, решать только вам. Ключевая фраза добавляет дополнительный уровень безопасности.

Если вы не хотите использовать фразу-пароль, просто нажмите Enter.

Читать Как безопасно скачивать и выгружать файлы с помощью SFTP

Все взаимодействие выглядит так:

Как настроить SSH ключи в Debian 10

Чтобы убедиться, что пара ключей SSH была сгенерирована, выполните следующую команду:

Команда выведет список файлов ключей:

Скопируйте открытый ключ на сервер

Запустите следующую команду на вашем локальном компьютере:

Вам будет предложено ввести пароль remote_username:

После аутентификации пользователя содержимое файла открытого ключа (

/.ssh/id_rsa.pub) будет добавлено к файлу

/.ssh/authorized_keys удаленного пользователя , и соединение будет закрыто.

Если утилита ssh-copy-id недоступна на вашем локальном компьютере, используйте следующую команду для копирования открытого ключа:

Войдите на сервер, используя SSH ключи

На этом этапе вы сможете войти на удаленный сервер без запроса пароля.

Чтобы проверить это, попробуйте подключиться к серверу через SSH:

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

Отключение аутентификации по паролю SSH

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

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

Войдите в свой удаленный сервер:

Откройте файл конфигурации сервера SSH /etc/ssh/sshd_config:

Найдите следующие директивы и измените их следующим образом:

После этого сохраните файл и перезапустите службу SSH:

На этом этапе аутентификация на основе пароля отключена.

Вывод

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

По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию снижает риск автоматических атак. Чтобы упростить рабочий процесс, используйте файл конфигурации SSH для определения всех ваших соединений SSH.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: