ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Установка правильных разрешений .ssh/config

Установка правильных разрешений .ssh/config

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

Файлы SSH хранятся в папке .ssh. Это скрытая папка, которая находится в домашнем каталоге. Каталог .Ssh не создается по умолчанию; он создается, когда вы инициируете соединение с удаленным хостом или используете команду ssh-keygen для генерации закрытого и открытого ключей аутентификации, как если бы вы хотели настроить беспарольную аутентификацию ssh.

Каталог .ssh  содержит важные файлы SSH, такие как:

  1. Открытый и закрытый  ключи ( id_rsa и id_rsa.pub).
  2. Файл Known_hosts – содержит открытые ключи всех удаленных систем.
  3. Конфигурационный файл конфигурации клиента

Если файл конфигурации не существует, вы можете легко создать его, как показано.

$ touch ~/.ssh/config

Файл конфигурации клиента .ssh/config

Каждый раз, когда вы инициируете SSH-соединение, вам необходимо указывать такие детали, как IP-адрес или имя домена, а также порт, который SSH прослушивает. Например,

$ ssh andreyex@192.168.2.103  -p 22

Всегда может быть сложно помнить такие детали. И здесь на помощь приходит файл ~/.ssh/config. Файл ~/.ssh/config – это файл конфигурации, который позволяет вам настраивать детали конфигурации удаленного хоста для каждого пользователя. Это избавляет вас от мучительной необходимости постоянно вспоминать детали каждого хоста, необходимые для подключения.

Появится образец файла конфигурации, как показано.

Host staging-server
HostName 192.168.2.103
User andreyex
Port 22

 

Простая команда SSH для удаленного хоста будет выглядеть следующим образом:

$ ssh staging-server

 

Разрешения для файла .ssh/config

По умолчанию  файл конфигурации клиента ~/.ssh/config имеет  права доступа 644 файла. Вы можете проверить это, используя команду ls с параметрами -la следующим образом.

$ ls -la ~/.ssh/config

 

Это означает, что владелец и группа файла имеют разрешения на чтение и запись (rw), в то время как другие пользователи имеют разрешения только на чтение (r).

-rw-rw-r--

ПРИМЕЧАНИЕ:

Как правило, никогда не назначайте разрешения на запись другим пользователям. Это создает угрозу безопасности вашего файла, и другие пользователи, которые не являются вами или вашей группой, могут изменять содержимое файла. Назначение разрешений на запись приведет к ошибке ‘Bad owner or permissions’, как показано ниже.

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

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

Лучшая практика рекомендует оставить разрешения по умолчанию на 664 или 600, где только владелец имеет разрешения на чтение и запись (rw). Таким образом, файл не будет изменен неавторизованными пользователями.

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

В приведенном ниже примере владелец ~/.ssh/config был установлен на bob: bob.

 

Чтобы решить эту проблему, мы вернулись к исходному владению файлом с помощью команды chown.

$ sudo chown andreyex:andreyex ~/.ssh/config

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

$ ssh staging-server

 

И это все, что вам нужно знать о настройке разрешений для файла ~/.ssh/config. Убедитесь, что вы не установили разрешения на чтение для остальных пользователей, и убедитесь, что файл принадлежит вам.

Exit mobile version