Я изменил свои права в своем .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
Обычно вы хотите, чтобы .ssh
разрешений каталога 700 (drwx------)
и открытый ключ (.pub
файл) 644 (-rw-r--r--)
, Ваш закрытый ключ (id_rsa
) должно быть 600 (-rw-------)
, Наконец, ваш домашний каталог не должен быть доступен для записи группой или другими лицами (не более 755 (drwxr-xr-x)
).
Я предполагаю, что вы имеете в виду, что каждый раз вам нужно вводить пароль вашей системы / пользователя и что раньше вам это не нужно. Ответ cdhowie предполагает, что вы устанавливаете пароль / парольную фразу при создании своих ключей, и если вы это сделали, то, как он говорит, вам придется каждый раз вводить ваш пароль, если вы не используете агент ssh.
Я боролся с этим навсегда и, наконец, понял, что нужно. замещать $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
Также убедитесь, что ваш домашний каталог недоступен для записи другими пользователями.
chmod g-w,o-w ~
Разрешения не должны иметь никакого отношения к этому. Ваш закрытый ключ зашифрован паролем, поэтому вам нужно ввести его для секретного ключа, который будет расшифровываться и использоваться.
Возможно, вам стоит запустить агент ssh, который может кэшировать дешифрованные ключи и будет поставлять их в приложения, которые в них нуждаются.
Felipe прав - каталог, содержащий ваш .ssh-каталог, не должен записываться группой или другим. таким образом chmod go-w ~
следующая логическая вещь, чтобы попробовать, если вы все еще запрашиваете пароль, когда ssh'ing после запуска ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
, предполагая, что вы не назначаете кодовую фразу в команде ssh-keygen, а ваш .ssh-каталог находится в вашем домашнем каталоге.