Я изменил свои разрешения в своей папке .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
Обычно вы хотите, чтобы разрешения были:
.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
chmod 700 /home/$USER/.ssh
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
, чтобы решить проблемуservice ssh restart
.ssh
локального пользователя, и войдите в систему: ssh [email protected]
Также убедитесь, что ваш домашний каталог не доступен для записи другим пользователям.
chmod g-w,o-w ~
Разрешения не должны иметь ничего общего с этим. Ваш закрытый ключ зашифрован паролем, поэтому вам необходимо ввести его, чтобы закрытый ключ можно было расшифровать и использовать.
Вы можете подумать о запуске агента ssh, который может кэшировать расшифрованные ключи и предоставлять их приложениям, которые в них нуждаются.
Фелипе прав: каталог, содержащий ваш каталог .ssh, не должен быть доступен для записи ни группе, ни другим. Таким образом, chmod go-w ~
- это следующая логическая вещь, которую нужно попробовать, если вам все равно будет предложено ввести пароль при ssh'ing после выполнения ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
, при условии, что вы не назначаете фразу-пароль в команде ssh-keygen, а каталог .ssh находится в вашем домашнем каталоге. ,.