Сегодня поговорим о том, зачем используется пользовательское подключение SSH. SSH (SSH-клиент) — это программа для удаленного доступа к машине, она позволяет пользователю выполнять команды на удаленном хосте. Это один из наиболее рекомендуемых способов входа на удаленный хост, поскольку он предназначен для обеспечения защиты связи между двумя хостами по небезопасной сети.
SSH использует как системный, так и пользовательский (настраиваемый) файл конфигурации. В этом уроке мы объясним, как создать пользовательский файл конфигурации ssh и использовать определенные параметры для подключения к удаленным узлам.
Требования:
- Вы должны установить клиент OpenSSH на рабочем столе Linux.
- Понимать общие параметры, используемые для удаленных соединений через ssh.
Файлы конфигурации клиента SSH
Ниже указаны местоположения файлов конфигурации клиента ssh:
/etc/ssh/ssh_config — это системный файл конфигурации по умолчанию. Он содержит настройки, которые применяются ко всем пользователям клиентской машины ssh.
~/.ssh/config или $HOME/.ssh/config — это пользовательский (настраиваемый) файл конфигурации. Он имеет конфигурации, которые применяются к конкретному пользователю. Поэтому он переопределяет настройки по умолчанию в общесистемном файле конфигурации. Это файл, который мы создадим и используем. По умолчанию пользователи аутентифицируются в ssh с использованием паролей, однако вы можете настроить ssh по без парольному входу, используя ssh по ключу, в 5 простых шагов.
Примечание. Если каталог ~/.ssh не существует в вашей системе, создайте его со следующими разрешениями.
Приведенная выше команда chmod подразумевает, что только пользователь может иметь права на чтение, запись и выполнение в соответствии с настройками ssh.
Как создать пользовательский файл конфигурации SSH
Этот файл обычно не создается по умолчанию, поэтому вам нужно создать его с разрешениями на чтение и запись только для пользователя.
Вышеупомянутый файл содержит разделы, определенные спецификациями хостов, и раздел применяется только к хостам, которые соответствуют одному из шаблонов, заданных в спецификации.
Обычный формат ~ /.ssh/config выглядит следующим образом: все пустые строки, а также строки, начинающиеся с ‘#’, считаются комментариями:
Из приведенного выше формата:
- Host host1 — это определение заголовка для host1, здесь начинается спецификация хоста и заканчивается следующим определением заголовка Host host2, создающим раздел.
- Host1, host2 — это просто псевдонимы хостов для использования в командной строке, они не являются фактическими именами удаленных хостов.
- Параметры конфигурации, такие как ssh_option1 = value1, ssh_option2 = value1 value2, применяются к согласованному хосту и должны иметь отступы для хорошо организованного форматирования.
- Для параметра, такого как ssh_option2 = value1 value2, значение value1 считается первым, а value2 — вторым.
- Определение заголовка Host * (где * — шаблон — подстановочный знак, который соответствует нулю или более символов) будет соответствовать нулю или более хостам.
Рассматривая формат выше, так ssh читает файл конфигурации. Если вы выполните команду ssh для удаленного доступа к host1 следующим образом:
Вышеупомянутая команда ssh выполнит следующие действия:
- Сопоставляет хост-псевдоним host1 в файле конфигурации и применяет параметры, установленные в заголовке определения Host Host1.
- Затем переходит к следующей секции хоста Host Host2 и находит, что имя, указанное в командной строке, не соответствует, поэтому здесь не используются никакие параметры.
- Он переходит к последнему разделу Host *, который соответствует всем хостам. Здесь он применяет все параметры этого раздела к соединению хоста. Но он не может переопределить значения параметров, которые уже использовались в предыдущих разделах.
- То же самое относится к host2.
Как использовать пользовательский файл конфигурации SSH
После того как вы поняли, как работает файл конфигурации клиента ssh, вы можете создать его следующим образом. Не забудьте использовать параметры и значения (псевдонимы хостов, номера портов, имена пользователей и т. Д.), применимые к вашей серверной среде.
Откройте файл конфигурации с помощью вашего редактора:
И определите необходимые разделы:
Подробное объяснение приведенных выше параметров конфигурации ssh.
- HostName — определяет имя реального хоста для входа в систему, альтернативно, вы можете использовать числовые IP-адреса, это также разрешено (как в командной строке, так и в спецификациях HostName).
- User — указывает, что пользователь должен войти в систему.
- Port — устанавливает номер порта для подключения на удаленном хосте, по умолчанию — 22. Используйте номер порта, настроенный в файле конфигурации sshd удаленного хоста.
- Protocol — этот параметр определяет версии протокола, которые ssh должен поддерживать в порядке предпочтения. Обычными значениями являются «1» и «2», несколько версий должны быть разделены запятыми.
- IdentityFile — определяет файл, с которого считывается идентификатор аутентификации пользователя DSA, Ed25519, RSA или ECDSA.
- ForwardX11 — определяет, будут ли соединения X11 автоматически перенаправляться по защищенному каналу и устанавливать DISPLAY. Он имеет два возможных значения «да» или «нет».
- Compression — оно используется для установки сжатия во время удаленного соединения со значением «да». По умолчанию «нет».
- ServerAliveInterval — устанавливает интервал таймаута в секундах, после которого, если никакой ответ (или данные) не был получен с сервера, ssh отправит сообщение через зашифрованный канал, чтобы запросить ответ от сервера. Значение по умолчанию равно 0, то есть сообщения не будут отправляться на сервер, если была определена опция BatchMode.
- ServerAliveCountMax — устанавливает количество живых сообщений сервера, которые могут быть отправлены без получения ответа ssh с сервера.
- LogLevel — определяет уровень детализации, который используется при регистрации сообщений из ssh. Допустимые значения включают: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 и DEBUG3. И значение по умолчанию — INFO.
Стандартный способ подключения к любому удаленному хосту Linux (CentOS 7 — в нашем случае), определен во втором разделе конфигурационного файла выше. Введем следующую команду:
Однако, с помощью файла конфигурации клиента ssh, мы просто введем следующую команду:
Вы можете найти больше опций и примеров использования на странице клиента ssh:
В этом руководстве мы объяснили вам, как настроить пользовательское подключение SSH для упрощения удаленного доступа в Linux.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
Добрый день!
Подскажите, пожалуйста, в чем может быть проблема. Если я ввожу команду для подключения к удаленному серверу напрямую, то все работает. А если я пытаюсь подключиться при помощи файла конфигурации .ssh/config, то получаю ошибку «connection refused». Все параметры верные, не работает, даже если оставить в файле конфигурации одну запись вида «HostName *ip_adress*». Аутентификация проходит по ключу, ключ при этом содержит парольную фразу, но пароль даже не запрашивается. В логах сервера тоже не видно попыток подключения.