Как установить правильные права доступа к каталогу SSH в Linux
Для правильной работы SSH необходимы правильные разрешения для каталога ~/.ssh или /home/username/.ssh: расположение по умолчанию для всей пользовательской конфигурации ssh. и файлы аутентификации. Рекомендуемые разрешения — чтение/запись/выполнение для пользователя и не должны быть доступны группе и другим лицам.
Кроме того, ssh также требует, чтобы файлы в каталоге имели разрешения чтение/запись для пользователя и были недоступны другим лицам. В противном случае пользователь может столкнуться со следующей ошибкой:
Authentication refused: bad ownership or modes for directory
В этом руководстве объясняется, как установить правильные разрешения для каталога .ssh и файлов, хранящихся в нем, в системах Linux.
Установите правильные права доступа к каталогу SSH в Linux
Если вы когда-нибудь столкнетесь с вышеуказанной ошибкой, вы можете установить правильные разрешения ssh для каталога .ssh с помощью команды chmod.
chmod u+rwx,go-rwx ~/.ssh
OR
chmod 0700 ~/.ssh
Чтобы проверить права доступа к каталогу ~/.ssh, используйте команду ls с флагами -l
и -d
, например:
ls -ld .ssh/
Ниже приведены некоторые файлы, которые вы найдете в каталоге ~/.ssh:
- Файл закрытого ключа (например, id_rsa) – закрытый ключ для аутентификации, который содержит очень конфиденциальную информацию, поэтому он должен иметь разрешения на чтение и запись для владельца и быть недоступным. по группе и другим, иначе ssh откажется подключаться.
- открытый ключ (например, .pub файл) – открытый ключ для аутентификации, который также содержит конфиденциальную информацию, поэтому он должен иметь разрешения на чтение и запись для владельца, разрешение только на чтение. по группам и другие.
- authorized_keys – содержит список открытых ключей, которые можно использовать для входа в систему под этим пользователем. Он не является очень конфиденциальным, но должен иметь разрешения на чтение и запись для владельца и быть недоступен для группы и других лиц.
- known_hosts – хранит список ключей хостов для всех хостов, на которые вошел пользователь ssh. Он должен иметь разрешения на чтение и запись для владельца и быть недоступен для групп и других лиц.
- config – файл конфигурации для каждого пользователя, который должен иметь разрешения на чтение и запись для владельца и не должен быть доступен группе и другим лицам.
По умолчанию файлы в каталоге ~/.ssh создаются с правильными установленными разрешениями. Чтобы проверить их разрешения, выполните следующую команду в своем домашнем каталоге:
ls -l .ssh/
Если ssh жалуется на неправильные разрешения для любого из вышеперечисленных файлов, вы можете установить правильные разрешения для любого из файлов следующим образом:
chmod u+rw,go-rwx .ssh/id_rsa
chmod u+rw,go-rwx .ssh/id_rsa.pub
chmod u+rw,go-rwx .ssh/authorized_keys
chmod u+rw,go-rwx .ssh/known_hosts
chmod u+rw,go-rwx .ssh/config
OR
chmod 600 .ssh/id_rsa
chmod 600 .ssh/id_rsa.pub
chmod 600 .ssh/authorized_keys
chmod 600 .ssh/known_hosts
chmod 600 .ssh/config
Кроме того, домашний каталог пользователя не должен быть доступен для записи группе или другим лицам, как показано на следующем снимке экрана.
ls -ld ~
Чтобы удалить разрешения на запись для группы и других пользователей в домашнем каталоге, выполните следующую команду:
chmod go-w ~
OR
chmod 755 ~
Возможно, вам также будет интересно прочитать следующие статьи, посвященные SSH:
- Как защитить и усилить сервер OpenSSH
- 5 лучших методов обеспечения безопасности сервера OpenSSH
- Как настроить вход без пароля по SSH в Linux [3 простых шага]
- Как заблокировать брутфорс-атаки SSH с помощью SSHGUARD
- Как использовать перехват портов для защиты службы SSH в Linux
- Как изменить порт SSH в Linux
На этом всё! Используйте раздел комментариев ниже, чтобы задавать вопросы или высказывать свои мысли по этой теме.