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


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

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

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts

273
2017-11-26 22:04


Источник




Ответы:


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

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


476
2017-11-26 22:24



Я нашел в другом месте, что, если вы используете файл authorized_keys, он должен быть chmod'd до 640, т. Е. -Rw-r -----. - AnneTheAgile
Где я могу найти эту информацию на страницах руководства? - Sonique
Я вернулся на этот пост около 30 раз. Я не могу поверить, что я не могу это вспомнить. - JREAM
Единственное, что важно в том, что ничто в .ssh не записывается никому другому, и ни один из секретных ключей не читается никому другому. - Markus Kuhn
@Cerin выполнить разрешение в каталоге предоставляет возможность перечислять непосредственные дочерние файлы / директории этого каталога, файлы внутри папки не «наследуют» бит выполнения их родительской папки. - Thomas


Я боролся с этим навсегда и, наконец, понял, что нужно. замещать $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 user@host.com

62
2018-06-09 20:39



Что касается вашего первого абзаца, я могу использовать ssh с открытыми / закрытыми ключами с пользователем в локальной локальной коробке (например, abc), отличный от пользователя на удаленном сервере (например, def@123.456.789). Я просто должен был убедиться, что локальный пользователь владеет локальными .ssh-файлами (например, abc:abc, а не root:abc) ` - Michael
Спасибо, что поместили все шаги и команды для новичков, Алекс. Твой - один из самых полезных ответов здесь. - Nav
+1. «Файл authorized_keys требует 644 разрешений» <= это было важно! - Le Quoc Viet
Если вы передаете каталог .ssh 700 режиме, тогда Нет смысла в подаче r-- группе и другим, потому что только ты может «пройти» .ssh тогда (при условии, что для этих файлов не существует жестких ссылок). То же самое для принятого ответа. По умолчанию 755. - user3125367


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

chmod g-w,o-w ~


31
2018-01-03 03:50



FYI, эта команда предполагает, что вы вошли в систему как пользователь, а не root - Alex W


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

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


4
2017-11-26 22:07



Спасибо за дополнительную информацию о ssh-агенте. Похоже, есть один встроенный в Leopard, поэтому я думаю, что я это сделаю. Имея немного проблем с этим, но я задам еще один вопрос.
Не недооценивайте разрешения. Они определенно все еще вступают в игру. - Alex W
@AlexW Они вступают в игру с другими аспектами ssh, но не о том, о чем спрашивают в вопросе. - cdhowie
Если у вас нет пароля на закрытых ключах (зависание автоматизированных удаленных скриптов), это вам не поможет. Здесь необходимы разрешения. - nerdoc


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


4
2018-04-17 20:20