- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Как настроить SSH вход без пароля
- Подготовка
- Шаг 1. Создайте пару ключей SSH
- Шаг 2. Загрузите открытый ключ на удаленный сервер
- Вариант 1. Загрузить открытый ключ с помощью команды ssh-copy-id
- Вариант 2: загрузить открытый ключ с помощью команды cat
- Шаг 3. Войдите на сервер без пароля
- Дополнительно: Устранение неполадок с разрешениями файлов удаленного сервера
- Как настроить беспарольный доступ по ssh
- Генерация ключей доступа
- Копирование ключей на сервер
- Настройка беспарольной аутентификации по SSH на сервере FreeBSD
- Как работают SSH-ключи?
- Создание ключей SSH
- Копирование открытого ключа на сервер
- Копирование ключа с помощью ssh-copy-id
- Копирование ключа через SSH
- Копирование ключа вручную
- Аутентификация с помощью SSH-ключей
- Отключение парольной аутентификации
- Заключение
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как настроить SSH вход без пароля
4 минуты чтения
SSH (Secure Shell) обеспечивает безопасное удаленное соединение между двумя системами. С помощью этого криптографического протокола вы можете управлять машинами, копировать или перемещать файлы на удаленном сервере через зашифрованные каналы.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Существует два способа входа в удаленную систему через SSH — с использованием аутентификации по паролю или аутентификации с открытым ключом (вход SSH без пароля).
В этом руководстве вы узнаете, как настроить и включить вход по SSH без пароля.
Подготовка
- Доступ к командной строке или окну терминала
- Пользователь с привилегиями sudo или root
- Локальный сервер и удаленный сервер
- Доступ по SSH к удаленному серверу через командную строку или окно терминала
Перед тем как начать проверьте существующие ключи SSH. Возможно, на вашем компьютере уже есть пара ключей SSH. Чтобы узнать, есть ли у вас в системе ключи SSH, выполните команду:
Если в выводе указано, что таких файлов нет, переходите к следующему шагу, который показывает, как сгенерировать ключи SSH. Если они у вас есть, вы можете использовать существующие ключи, сделать их резервную копию и создать новую пару или перезаписать ее.
Шаг 1. Создайте пару ключей SSH
1. Первое, что вам нужно сделать, это сгенерировать пару ключей SSH на машине, на которой вы сейчас работаете.
В этом примере мы генерируем 4096-битную пару ключей. Мы также добавляем адрес электронной почты, но это необязательно. Команда такая:
2. Затем введите место, где вы хотите сохранить ключи, или нажмите Enter, чтобы принять путь по умолчанию.
3. Также вам будет предложено установить кодовую фразу. Хотя это делает соединение еще более безопасным, оно может прерываться при настройке автоматизированных процессов. Поэтому вы можете ввести пароль или просто нажать Enter, чтобы пропустить этот шаг.
4. Затем в выводе сообщается, где хранятся идентификационный и открытый ключ, а также выдается отпечаток ключа.
5. Убедитесь, что вы успешно создали пару ключей SSH, выполнив команду:
Вы должны увидеть путь идентификационного ключа и открытого ключа, как на скриншоте ниже:
Шаг 2. Загрузите открытый ключ на удаленный сервер
Вы можете загрузить публичный SSH-ключ на удаленный сервер с помощью команды ssh-copy-id или команды cat .
Вариант 1. Загрузить открытый ключ с помощью команды ssh-copy-id
Чтобы включить беспарольный доступ, вам необходимо загрузить копию открытого ключа на удаленный сервер.
1. Подключитесь к удаленному серверу и используйте команду ssh-copy-id :
2. Открытый ключ автоматически копируется в файл .ssh/authorized_keys .
Вариант 2: загрузить открытый ключ с помощью команды cat
Другой способ скопировать открытый ключ на сервер — использовать команду cat .
1. Начните с подключения к серверу и создания на нем каталога .ssh .
2. Затем введите пароль для удаленного пользователя.
3. Теперь вы можете загрузить открытый ключ с локальной машины на удаленный сервер. Команда также указывает, что ключ будет храниться под именем authorized_keys во вновь созданном каталоге .ssh :
Шаг 3. Войдите на сервер без пароля
После создания пары ключей SSH и загрузки открытого ключа на удаленный сервер вы должны иметь возможность подключаться к выделенному серверу без ввода пароля.
Проверьте, работает ли установка, выполнив команду:
Система должна напрямую входить в систему на удаленном сервере, пароль не требуется.
Примечание: убедившись, что вы можете подключаться к удаленному серверу SSH без пароля, рассмотрите возможность полного отключения аутентификации по паролю SSH. Это добавит еще один уровень безопасности и защитит ваш сервер от bruteforce атак.
Дополнительно: Устранение неполадок с разрешениями файлов удаленного сервера
Права доступа к файлам на удаленном сервере могут вызвать проблемы с входом в SSH без пароля. Это обычная проблема со старыми версиями SSH.
Если после выполнения всех шагов вам все еще предлагается ввести пароль, начните с редактирования прав доступа к файлам на удаленном сервере.
- Установите разрешения 700 для каталога .ssh .
- Установите разрешения 640 для каталога .ssh/authorized_keys .
Отредактируйте права доступа к файлу с помощью следующей команды:
При появлении запроса введите свой пароль. Если действие было успешным, вывода не будет.
Если вы хотите автоматизировать обновления и другие задачи или беспрепятственно подключаться к удаленному серверу по SSH, вам следует включить вход по SSH без пароля. Инструкции в этой статье должны помочь вам в этом.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник
Как настроить беспарольный доступ по ssh
Надоело всякий раз вводить пароль для доступа на удаленный сервер. В моём случае это виртуальная машина с установленой Ubutnu . Есть выход! Называется это Passwordless SSH Login . Однако не стоит пугаться слова Passwordless (беспарольный). Это совсем не значит, что любой проходимец теперь будет иметь доступ к вашему серверу. Совсем нет. Для доступа всё так же нужен будет ключ. Единственная разница лишь в том, что ключ этот вводить будете не вы а ваша система. Организация беспарольного доступа делается всего в два простых шага:
Генерация ключей доступа
На клиенте эта процедура выполняется всего один раз и состоит из всего одной команды:
В результате в папке
/.ssh будут сгенерированы два ключа:
- Приватный ключ id_rsa Этот ключ никому не надо давать. Он потому и приватный, что предназначен только для вас.
- Публичный ключ id_rsa.pub Этот ключ можно раздать/скопировать всем, к кому вы хотите получить доступ
Копирование ключей на сервер
Для того, чтобы ваш сервер начал вас узнавать для предоставления беспарольного доступа необходимо скопировать на него свой публичный ключ. Делается это просто:
Сервер спросит пароль пользователя и в случае успешной аутентификации добавит ваш публичный ключ в файл /homes/ /.ssh/authorized_keys
Если команды ssh-copy-id у вас не нашлось (что случается, но очень редко. Например, не установлен пакет openssh-client ), то всё то же самое можно сделать вручную:
Если всё прошло удачно, то теперь можно попробовать залогиниться на удалённый сервер по ssh
При этом сервер не должен спрашивать пароль.
В случае ручного добавления ключей необходимо уточнить уровень доступа к файлу authorized_keys на сервере. Доступ к этому файлу должен иметь только ваш пользователь ( remote-user@remote-host ).
Соответственно свой публичный ключ можно скопировать на более чем один сервер.
Источник
Настройка беспарольной аутентификации по SSH на сервере FreeBSD
SSH (или secure shell) – это сетевой протокол, который защищает взаимодействие с сервером путём шифрования данных. SSH – самый распространённый способ взаимодействия с сервером FreeBSD. Существует несколько способов аутентификации, но данное руководство охватывает только беспарольную аутентификацию по SSH.
Как работают SSH-ключи?
Сервер SSH может выполнить аутентификацию клиентов несколькими способами, самыми распространёнными из которых являются аутентификация на основе пароля и на основе ключей SSH. Пароль обеспечивает базовую защиту от несанкционированного доступа, а SSH-ключи – гораздо более безопасный вариант.
Главный недостаток паролей состоит в том, что они, как правило, создаются вручную, а потому они очень простые и короткие, и их легко взломать или подобрать.
SSH-ключи предлагают более надежную и безопасную альтернативу паролям. Пары ключей SSH можно использовать для аутентификации вместо паролей; каждая пара ключей состоит из закрытого и открытого ключа.
Закрытый ключ работает подобно паролю, его нужно хранить на клиентской машине. Закрытый ключ нельзя разглашать. Если сторонний пользователь получит ваш закрытый ключ, он сможет получить доступ к серверу; такой ключ нужно срочно заменить. Длина закрытого ключа обычно составляет, по меньшей мере, 2048 бит. Его можно дополнительно защитить с помощью парольной фразы (это пароль, который запрашивается при попытке использовать закрытый ключ). Парольная фраза может защитить ключ в случае несанкционированного доступа.
Соответствующий открытый ключ можно свободно разглашать без каких-либо негативных последствий. Такой ключ используется для шифровки сообщений, которые можно расшифровать только с помощью закрытого ключа.
Чтобы настроить аутентификацию на основе SSH-ключей, нужно добавить открытый ключ в аккаунт пользователя на удалённом сервере. Открытый ключ должен храниться в специальном файле в домашнем каталоге удалённого пользователя (.ssh/authorized_keys).
Когда клиент пытается подключиться к удалённому серверу, сервер проверяет закрытый ключ клиента, который должен совпасть с одним из открытых ключей сервера. Если это так, клиент успешно проходит аутентификацию и может начать сессию.
Создание ключей SSH
Создайте SSH-ключи на локальном компьютере.
Для этого используется утилита ssh-keygen. Она по умолчанию создаёт 2048-битный RSA-ключ, такой ключ подойдёт в большинстве случаев.
Введите в терминал:
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Вы можете принять место хранения ключей по умолчанию или указать свой путь к ключам. По умолчанию ключи находятся в каталоге .ssh в домашнем каталоге пользователя. Файл закрытого ключа называется id_rsa, а открытый ключ находится в id_rsa.pub.
Если вы только начинаете знакомство с SSH, лучше принять путь к ключам по умолчанию. В таком случае клиент SSH сможет автоматически найти ключи при попытке пройти аутентификацию. Если вы хотели бы выбрать нестандартный путь, введите его сейчас; оставьте поле пустым и нажмите RETURN, чтобы принять значение по умолчанию.
Если вы создавали SSH-ключи раньше, на экране может появиться запрос:
/home/username/.ssh/id_rsa already exists.
Overwrite (y/n)?
Если вы замените существующие ключи новыми, они будут утеряны навсегда и вы не сможете использовать их для аутентификации. Не переписывайте старые ключи, если вы не уверены в том, что они больше не используются.
Далее будет запрошена парольная фраза.
Created directory ‘/home/username/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Это опционально. Такая парольная фраза защищает закрытый ключ. Она запрашивается всегда, когда нужно использовать закрытый ключ. Таким образом, при аутентификации будет запрашиваться и закрытый ключ, и его пароль. В некоторых случаях применить парольную фразу полезно. Если вы оставите это поле пустым, вы сможете проходить аутентификацию без пароля, только с помощью ключей.
После этого на экране появится следующий вывод, который предоставит вам подробности о ключах:
Your identification has been saved in /home/8host/.ssh/id_rsa.
Your public key has been saved in /home/8host/.ssh/id_rsa.pub.
The key fingerprint is:
76:e2:bc:19:18:b3:35:59:f4:54:b9:d3:bc:d0:56:a1 username@localcomputer
The key’s randomart image is:
+—[ RSA 2048]—-+
| . . o.|
| . o o .|
| . .E.+.|
| o .ooo|
| o S . o..|
| X + . |
| o + |
| + |
| o |
+——————+
Ключи готовы. Теперь нужно добавить открытый ключ на сервер, к которому вы хотите подключаться с помощью этих ключей.
Копирование открытого ключа на сервер
Добавить открытый ключ на сервер можно несколькими способами.
Примечание: На каждый сервер можно добавить неограниченное количество SSH-ключей.
Добавить открытый ключ на сервер можно несколькими способами. Рассмотрим несколько из них, начиная с простейшего. Выберите самый удобный для вас метод и используйте его, чтобы добавить открытый ключ на сервер.
Копирование ключа с помощью ssh-copy-id
Если на локальном компьютере установлена утилита ssh-copy-id, с её помощью вы можете быстро добавить открытый ключ на удалённый сервер. Обычно (но не всегда) утилита ssh-copy-id включена в пакет OpenSSH.
Чтобы узнать, есть ли эта утилита на локальном компьютере, просто попробуйте запустить её. Если она не установлена, на экране появится ошибка:
Command Not Found
Вы можете установить её или воспользоваться другим методом копирования ключа.
В команде ssh-copy-id нужно указать IP-адрес или доменное имя, а также имя пользователя, для которого нужно добавить эти SSH-ключи.
Команда может вернуть:
The authenticity of host ‘111.222.11.222 (111.222.11.222)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ab:e6:6d:12:fe.
Are you sure you want to continue connecting (yes/no)? yes
Это значит, что локальный компьютер не узнаёт удалённый сервер, потому что ранее SSH-ключи никогда не использовались при аутентификации. Чтобы продолжить, введите yes и нажмите RETURN.
Утилита сканирует локальную учетную запись пользователя в поисках открытого ключа, 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@111.222.11.222’s password:
Введите пароль и нажмите RETURN. Утилита подключится к аккаунту пользователя на удалённом хосте и установит открытый ключ; это происходит путём копирования содержимого файла id_rsa.pub в файл .ssh/authorized_keys в домашнем каталоге удалённого пользователя.
Если копирование прошло успешно, на экране появится:
Number of key(s) added: 1
Now try logging into the machine, with: «ssh ‘username@111.222.11.222′»
and check to make sure that only the key(s) you wanted were added.
Теперь открытый ключ добавлен в файл authorized_keys удалённого пользователя, и сервер сможет принять закрытый ключ для аутентификации.
Примечание: Скопировав ключ на удалённый сервер, можете переходить к разделу «Аутентификация с помощью SSH-ключей».
Копирование ключа через SSH
Если на вашем сервере нет утилиты ssh-copy-id, но есть парольный SSH-доступ к серверу, вы можете установить открытый ключ с помощью SSH-клиента.
Для этого нужно вывести открытый ключ на локальном компьютере и передать его по SSH на удалённый сервер. На удалённом сервере нужно создать каталог
/.ssh (если такого каталога нет), а затем добавить открытый ключ в файл authorized_keys в этом каталоге. Используйте перенаправление потока >>, чтобы вставить ключ в файл authorized_keys (если ранее вы добавляли SSH-ключи на удалённый сервер, такой файл уже существует; при этом ключи не будут переписаны новыми ключами).
Если вы не изменили название файла открытого ключа по умолчанию (id_rsa.pub), используйте эту команду:
/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p
Команда может вернуть такое сообщение:
The authenticity of host ‘111.222.11.222 (111.222.11.222)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ab:e6:6d:12:fe.
Are you sure you want to continue connecting (yes/no)? yes
Это значит, что локальный компьютер не узнаёт удалённый сервер, потому что ранее SSH-ключи никогда не использовались при аутентификации. Чтобы продолжить, введите yes и нажмите RETURN.
Команда запросит пароль удалённого пользователя:
Введите пароль и нажмите RETURN. Если команда выполнена успешно, она не вернёт никакого вывода. Ключ id_rsa.pub будет добавлен в файл authorized_keys.
Примечание: Скопировав ключ на удалённый сервер, можете переходить к разделу «Аутентификация с помощью SSH-ключей».
Копирование ключа вручную
Также вы можете добавить открытый ключ на удалённый сервер вручную. Для этого нужно авторизоваться на удалённом сервере как пользователь, для которого предназначен этот ключ.
Процесс не меняется: вам нужно взять открытый ключ на локальной машине и добавить его в .ssh/authorized_keys в домашнем каталоге удалённого пользователя.
Войдите на удалённый сервер:
При этом может появиться сообщение:
The authenticity of host ‘111.222.11.222 (111.222.11.222)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ab:e6:6d:12:fe.
Are you sure you want to continue connecting (yes/no)? yes
Это значит, что локальный компьютер не узнаёт удалённый сервер, потому что ранее SSH-ключи никогда не использовались при аутентификации. Чтобы продолжить, введите yes и нажмите RETURN.
После этого будет запрошен пароль удалённого пользователя:
Password for username@111.222.11.222:
Создайте каталог .ssh в домашнем каталоге удалённого пользователя, если такого каталога пока что нет:
Вернитесь на локальную машину и запросите открытый SSH-ключ:
Скопируйте вывод в буфер, затем откройте файл authorized_keys в текстовом редакторе:
Вставьте в него открытый ключ, а затем сохраните и закройте файл (Esc, a, a).
Открытый ключ SSH теперь добавлен на удалённый сервер.
Аутентификация с помощью SSH-ключей
Если ключ был успешно добавлен на удалённый сервер FreeBSD, у вас получится подключиться к серверу без пароля удалённого пользователя.
Если во время создания ключей вы не установили парольную фразу, аутентификация пройдёт без запроса пароля.
На данный момент удалённый пользователь может пройти аутентификацию и с помощью пароля, и с помощью SSH-ключей. Чтобы защитить сервер от brute force атак, отключите парольную аутентификацию.
Отключение парольной аутентификации
Если настройка беспарольной аутентификации по SSH прошла успешно, нужно отключить парольную аутентификацию. Это сделает сервер неуязвимым для brute force атак.
Прежде чем отключить пароль, убедитесь, что на сервере настроена аутентификация на основе SSH-ключей для пользователя root или пользователя с доступом к команде sudo. В противном случае вы рискуете заблокировать себе доступ к собственному серверу.
Войдите на удалённый сервер с помощью ключей как пользователь root или sudo. Откройте конфигурационный файл демона SSH:
sudo ee /etc/ssh/sshd_config
В этом файле найдите директиву ChallengeResponseAuthentication. Она может быть закомментирована. Раскомментируйте её и установите значение no:
Сохраните и закройте файл.
Чтобы изменения вступили в силу, перезапустите сервис sshd:
sudo service sshd restart
Теперь доступ к серверу можно получить только по SSH-ключам.
Заключение
Теперь сервер защищён от несанкционированного доступа и brute force атак. Кроме того, во время аутентификации вам не нужно указывать пароль пользователя.
Источник