3

Я сгенерировал ключи и одобрил их для доступа к моей корпоративной ИТ-команде. Тем не менее, мне нужно добавлять их в мой терминал каждый раз, когда я запускаю свой компьютер (сценарий, который мне дали, чтобы обойти это, у меня пока не работает). Так что сейчас мне нужно выдавать ssh-add ~/.ssh/keyfolder/private_key каждом запуске машины.

Однако сегодня я начал получать эту ошибку:

~/.ssh/keyfolder/private_key: Permission denied

Я пытался выдать chmod 777 на этот закрытый ключ, но не повезло.

Что я сделал / я делаю неправильно?

$sudo ls -lha ~/.ssh/keyfolder/private_key
-rwxrwxrwx 1 rabdelaz staff 1.7K 2013-07-29 10:19 /home/rabdelaz/.ssh/keyfolder/private_key

ОТВЕТ: Мне были нужны правильные уровни разрешений в нужных местах (очевидно).

поэтому я установил "ключевую папку" и сам ключ на 600.

не уверен, что permsions были раньше ...

3 ответа3

5

Вы хотите, чтобы папка ключей и сам ключ были доступны для чтения только пользователю. Я всегда делаю chmod 700 ~/.ssh; chmod 600 ~/.ssh/* сам, где вы, очевидно, захотите изменить эти каталоги в соответствии с вашим собственным вариантом использования.

3

Никогда не делайте chmod 777 на свой закрытый ключ! Это делает его (возможно) публично читаемым, а вы этого не хотите. Кроме того, SSH в некоторых случаях даже откажется использовать файл с слишком разрешительными разрешениями, так что вы можете выстрелить себе в ногу с этим.

Если права доступа к файлу не являются проблемой, может быть несколько других причин. Вы можете установить неправильные разрешения для любой из каталогов ~/.ssh или ~/.ssh/keyfolder (технически также для ~ но тогда это не будет единственным симптомом). Используйте ls -adl для проверки этих каталогов. Они должны иметь rwx для вас, но --- как для группы, так и для мира.

Другая проблема может быть (но это довольно редко) в том, что бинарный файл ssh-add имеет установленный бит setuid , что заставляет его работать от имени другого пользователя и, следовательно, не имеет права читать ваш закрытый ключ. Используйте ls -lh $(which ssh-add) чтобы проверить это.

1

Первое, что нужно сделать в этой ситуации, - это использовать опцию -v для ssh (добавив подробное описание), чтобы вы могли посмотреть, какие типы методов аутентификации используются и каков результат. Это может дать тонкую информацию о возможных неправильных вещах, которые могут войти в это. Затем вы смотрите на ответ, данный Sybren

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .