База знаний по Open Source
Yandex поиск по всему сайту
Авторизация

Разрешения файлов директории .ssh, закрытого и публичного ключей (private and public keys)

Если ваши права доступа к файлам директории .SSH были изменены (то есть id_rsa/config), тогда ssh просто игнорирует их использование из соображений безопасности или, в некоторых случаях, выдает ошибку типа:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions XXXX for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

Чтобы исправить проблемы с разрешениями, для начала следует установить правильные разрешения на домашнюю директорию и директорию .ssh:

sudo chown -R пользователь:пользователь $HOME
sudo chmod 750 $HOME
sudo chmod -R 700 $HOME/.ssh

Это создает самые строгие разрешения для всех файлов в .ssh, которые удовлетворят требованиям SSH для этих файлов. Рекомендации и требования SSH (подчеркнуты) для отдельных файлов директории .ssh приведены ниже (со страницы руководства):

~/.ssh/id_rsa (или любой PRIV KEY – закрытый, первичный ключ) – Эти файлы содержат конфиденциальные данные и должны быть доступны для чтения пользователем, но не доступны для других (чтение/запись) – только 0600. Программа ssh будет просто игнорировать файл закрытого ключа, если он доступен другим.

sudo chmod 600 ~/.ssh/id_rsa

~/.ssh/config – из-за возможности злоупотребления этот файл должен иметь строгие разрешения: чтение/запись для пользователя и недоступность для других – достаточно установить 0644.

sudo chmod 644 ~/.ssh/config

~ /.ssh/authorized_keys – Этот файл не является высокочувствительным, но рекомендуемые разрешения для чтения и записи для пользователя и недоступны для других – 0644.

sudo chmod 644 ~/.ssh/authorized_keys

~ /.ssh/known_hosts – Этот файл не является высокочувствительным, но рекомендуемые разрешения для чтения и записи для пользователя и недоступны для других – 0644.

chmod 644 ~/.ssh/known_hosts

~/.ssh/ – Нет общего требования хранить все содержимое этого каталога в секрете, но рекомендуемые разрешения для чтения/записи/выполнения для пользователя и недоступны для других – достаточно 0700.

sudo chmod 700 ~/.ssh

~ / .ssh / id_rsa.pub (ИЛИ ЛЮБОЙ ОТКРЫТЫЙ КЛЮЧ) – Эти файлы не являются конфиденциальными и могут (но не обязательно) быть доступными для чтения любому.

/etc/hosts – он должен быть доступен для записи только пользователю root