Разрешения на закрытый ключ в папке .ssh?

Я изменил свои права в моей папке .ssh, и теперь, когда я использую часть программного обеспечения, которое использует мой закрытый ключ, я должен каждый раз вводить пароль. Должны ли мои разрешения быть в моем файле id_rsa, чтобы не вводить пароль каждый раз, когда я использую приложение, которое его использует?

В настоящее время мои разрешения установлены на:

[email protected] 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
[email protected] 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
[email protected] 1 Jody  staff  3855 Sep 13 22:35 known_hosts
268 голосов | спросил Jody G 27 62010vEurope/Moscow11bEurope/MoscowSat, 27 Nov 2010 01:04:58 +0300 2010, 01:04:58

5 ответов


475

Обычно вы хотите, чтобы права на .ssh были 700 (drwx------) и открытый ключ (.pub file), чтобы быть 644 (-rw-r--r--). Ваш закрытый ключ (id_rsa) должен быть 600 (-rw-------). Наконец, ваш домашний каталог не должен быть записан группой или другими (не более 755 (drwxr-xr-x)).

Я предполагаю, что вы имеете в виду, что вам нужно каждый раз вводить пароль вашей системы /пользователя и что раньше вам этого не нужно. Ответ cdhowie предполагает, что вы устанавливаете пароль /парольную фразу при создании своих ключей, и если вы это сделали, то, как он говорит, вам придется каждый раз вводить ваш пароль, если вы не используете агент ssh.

ответил 27 62010vEurope/Moscow11bEurope/MoscowSat, 27 Nov 2010 01:24:09 +0300 2010, 01:24:09
61

Я боролся с этим навсегда и, наконец, понял, что нужно. Замените $USER везде с именем пользователя SSH, с которым вы хотите войти на сервер. Если вы пытаетесь войти в систему как root, вам нужно будет использовать /root/.ssh и т. Д. Вместо /home/root/.ssh, как это делается для пользователей без полномочий root.

  • Домашний каталог на сервере не должен быть доступен для записи другими: chmod go-w /home/$USER
  • Папка SSH на сервере требует 700 разрешений: chmod 700 /home/$USER/.ssh
  • Для файла Authorized_keys необходимы 644 разрешения: chmod 644 /home/$USER/.ssh/authorized_keys
  • Убедитесь, что user владеет файлами /папками, а не root: chown user:user authorized_keys и chown user:user /home/$USER/.ssh
  • Поместите сгенерированный открытый ключ (из ssh-keygen) в файл authorized_keys пользователя на сервере
  • Убедитесь, что домашний каталог пользователя настроен так, как вы ожидаете, и что он содержит правильную папку .ssh, которую вы модифицировали. Если нет, используйте usermod -d /home/$USER $USER, чтобы исправить проблему.
  • Наконец, перезапустите ssh: service ssh restart
  • Затем убедитесь, что клиент имеет файлы открытого ключа и закрытого ключа в папке .ssh локального пользователя и логин: ssh [email protected]
ответил Alex W 9 J0000006Europe/Moscow 2015, 23:39:45
31

Также убедитесь, что ваш домашний каталог недоступен для записи другими пользователями.

chmod g-w,o-w ~

ответил Felipe Alvarez 3 Jam1000000amThu, 03 Jan 2013 07:50:21 +040013 2013, 07:50:21
4

Разрешения не должны иметь никакого отношения к этому. Ваш секретный ключ зашифрован паролем, поэтому вам нужно ввести его для секретного ключа и его использования.

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

ответил cdhowie 27 62010vEurope/Moscow11bEurope/MoscowSat, 27 Nov 2010 01:07:13 +0300 2010, 01:07:13
4

Felipe прав - каталог, содержащий ваш .ssh-каталог, не может быть записан группой или другим. Таким образом, chmod go-w ~ является следующей логической задачей, если вы все еще запрашиваете пароль при ssh'ing после запуска ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys, предполагая, что вы не назначаете кодовую фразу в команде ssh-keygen, а ваш каталог .ssh находится в вашем домашнем каталоге.

ответил mikentalk 18 AMpFri, 18 Apr 2014 00:20:44 +040020Friday 2014, 00:20:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132