it-swarm-ru.tech

ssh ошибка "права доступа слишком открыты"

У меня была проблема с моим Mac, из-за которой я больше не мог сохранять какие-либо файлы на диск .. Мне пришлось перезагрузить OSX lion и сбросить разрешения для файлов и acls.

Но теперь, когда я хочу зафиксировать репозиторий, я получаю следующую ошибку из ssh:

Permissions 0777 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.

Какие уровни разрешений я должен дать файлу id_rsa?

1508
Yannick Schall

Ключи должны быть доступны только для чтения вами:

chmod 400 ~/.ssh/id_rsa

600 также выглядит хорошо (на самом деле лучше в большинстве случаев, потому что вам не нужно изменять права доступа к файлу для его редактирования).

Соответствующая часть из справочной страницы (man ssh)

 ~/.ssh/id_rsa
         Contains the private key for authentication.  These files contain sensitive 
         data and should be readable by the user but not
         accessible by others (read/write/execute).  ssh will simply ignore a private 
         key file if it is              
         accessible by others.  It is possible to specify a
         passphrase when generating the key which will be used to encrypt the sensitive 
         part of this file using 3DES.

 ~/.ssh/identity.pub
 ~/.ssh/id_dsa.pub
 ~/.ssh/id_ecdsa.pub
 ~/.ssh/id_rsa.pub
         Contains the public key for authentication.  These files are not sensitive and 
         can (but need not) be readable by anyone.
2616
quickshiftin

Используя Cygwin в Windows 8.1, необходимо выполнить команду:

пользователи chgrp ~/.ssh/id_rsa

Тогда решение, размещенное здесь, может быть применено, 400 или 600 в порядке.

chmod 600 ~/.ssh/id_rsa

Ссылка: http://vineetgupta.com/blog/cygwin-permissions-bug-on-windows-8

82
tanza9

Независимое от локали решение, которое работает в Windows 8.1:

chgrp 545 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

GID 545 - это специальный идентификатор , который всегда относится к группе «Пользователи», даже если в вашей локали используется другое Word для пользователей.

31
thehouse

0600 - это то, что у меня установлено (и оно работает)

28
Devin Ceartas

AFAIK значения:

700 для скрытого каталога ".ssh", где находится файл ключа

600 для ключевого файла "id_rsa"

21
ajaaskel

Существует одно исключение из требования «0x00» для ключа. Если ключ принадлежит пользователю root и группе принадлежит группе, в которой есть пользователи, то это может быть «0440», и любой пользователь в этой группе может использовать ключ.

Я считаю, что это будет работать с любыми разрешениями в наборе «0xx0», но я не проверял каждую комбинацию с каждой версией. Я попытался 0660 с 5.3p1-84 на CentOS 6, и группа не первичная группа пользователя, а вторичная группа, и она работает нормально.

Обычно это делается не для чьего-то личного ключа, а для ключа, используемого для автоматизации, в ситуации, когда вы не хотите, чтобы приложение могло связываться с ключом.

Аналогичные правила применяются к ограничениям каталога .ssh.

13
syberghost

предоставить разрешение 400, выполнить команду ниже 

chmod 400 /Users/username/.ssh/id_rsa

 enter image description here

9
Sujit Dhamale

что сработало для меня

chgrp Пользователи FOLDER

cHMOD FOLDER

4
Jerome Ansia

В Windows 10 мне не хватало chmod и chgrp в cygwin. Мне пришлось щелкнуть правой кнопкой мыши по файлу -> Свойства -> Безопасность (вкладка) и удалить всех пользователей и группы, кроме моего активного пользователя.

3
Jared Beach

Интересное сообщение здесь . Операционные системы достаточно умны, чтобы запретить удаленные подключения, если ваш закрытый ключ слишком открыт. Он понимает риск, когда разрешения для id_rsa широко открыты (читай, редактируется кем угодно).

{Можно было сначала поменять твой замок, а затем открыть его ключами, которые у него уже были. }

cd ~/.ssh
chmod 400 id_rsa

PS: 

Работая на нескольких серверах (непроизводственных), большинству из нас необходимо подключить удаленный сервер с помощью ssh. Хорошая идея состоит в том, чтобы иметь кусочек кода прикладного уровня (может быть Java, использующий jsch) для создания доверительных отношений ssh ​​между серверами. Таким образом, соединение будет без пароля. Incase, Perl установлен - можно также использовать модуль net ssh.

2
Piyush Baijal

У меня ошибка в Windows 10, поэтому я установил разрешение следующим образом, и это работает.

 Permission for id_rsa of windows 10

Подробно удаляйте других пользователей/группы, пока у них не появятся только «СИСТЕМА» и «Администраторы». Затем добавьте в него свой логин Windows только с правами чтения.

Обратите внимание, что файл id_rsa находится в папке c:\users\<username>.

1
Supawat Pusavanno

Это то, что работает для меня (на Mac)

Sudo chmod 600 path_to_your_key.pem 

затем :

ssh -i path_to_your_key [email protected]_ip

Надеюсь, это поможет

0
lansanalsm

Я попытался разрешить 600 уровень доступа для своего закрытого ключа, и он работал для меня . chmod 600 privateKey [Dev] $ ssh -i privateKey [email protected]

chmod 755 privateKey [dev] $ ssh -i privateKey user @ ip он выдавал следующую проблему: Разрешения 0755 для 'privateKey' слишком открыты . Требуется, чтобы Ваши файлы закрытых ключей НЕ доступны другим лицам Этот закрытый ключ будет игнорироваться . Загрузить ключ "privateKey": плохие разрешения

0
deepu kumar singh

Я сталкивался с этой ошибкой, когда играл с Ansible. Я изменил разрешения закрытого ключа на 600 для решения этой проблемы. И это сработало!

chmod 600 .vagrant/machines/default/virtualbox/private_key
0
vildhjarta

Для меня (с использованием Ubuntu Subsystem для Linux) сообщение об ошибке изменилось на:

 Permissions 0555 for 'key.pem' are too open

после использования chmod 400 . Оказалось, что использование root в качестве пользователя по умолчанию было причиной.

Измените это с помощью cmd:

 ubuntu config --default-user your_username
0
Daniel Kettemann