SSH продолжает просить мой пароль

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

Что я хочу:

  • смочь ввести git pull не вводя мой вход в систему/пароль или мой пароль
  • смочь ввести gcloud [...] ssh [...] не вводя мой пароль каждый раз.

На сегодняшний день:

  • git pull не просит, чтобы я ввел свои учетные данные, они хранятся внутри ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub.
  • gcloud ... ssh ... всегда просите, чтобы я ввел свой пароль:

$ gcloud... ssh...

sign_and_send_pubkey: подписание перестало работать: агент отказался от операции

Введите пароль для ключа '/home/BeChillerToo/.ssh/google':

Это - содержание моего ~/.ssh/config:

IdentityFile ~/.ssh/google
IdentityFile ~/.ssh/id_rsa

И содержание /etc/ssh/ssh_config:

Host *
PasswordAuthentication yes
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes

Править: Мои ключи, кажется, плохо добавляются.

Вот результат ssh-add -l после того, как я загружаюсь:

2048 SHA256:+nCvs...CUM+DHqA4 chill@laptop (RSA)
4096 SHA256:bTgKQM...ok chill@gmail.com (RSA)
4096 SHA256:92d3Wy...jc chill@work-mail.com (RSA)

И затем после того, как я добавляю google-compute-engine ключ:

2048 SHA256:+nCvs...CUM+DHqA4 /home/chill/.ssh/google_compute_engine (RSA)
4096 SHA256:bTgKQM...ok chill@gmail.com (RSA)
4096 SHA256:92d3Wy...jc chill@work-mail.com (RSA)

Ключ, связанный с chill@work-mail.com, является тем, который я использую для GitHub, следовательно почему я не должен предоставлять учетные данные git pull.

И я подозреваю, что первый ключ (тот, который переключается от chill@laptop кому: /home/chill/.ssh/google_compute_engine) тот, вызывающий проблему с gcloud:

$ gcloud compute ... ssh ...

sign_and_send_pubkey: signing failed: agent refused operation
Enter passphrase for key '/home/chill/.ssh/google_compute_engine': 
2
задан 17 January 2019 в 19:49

2 ответа

Используйте ssh-агент. В X средах брелок для ключей GNOME или кошелек KDE могут обработать ключи автоматически. В консоли среда запускаются ssh-agent как это:

$ eval $(ssh-agent)

## The output without the eval will look like this:
$ ssh-agent
ssh-agent 
SSH_AUTH_SOCK=/tmp/ssh-hvcwJQnSOHOi/agent.125894; export SSH_AUTH_SOCK;
SSH_AGENT_PID=125895; export SSH_AGENT_PID;
echo Agent pid 125895;

После ssh-agent запускается (с eval). Можно добавить, что ключи SSH с ssh-добавляют

$ ssh-add ~/.ssh/google
$ ssh-add ~/.ssh/id_rsa

С текущими версиями SSH можно также добавить опцию AddKeysToAgent к ~/.ssh/config файл:

## ~/.ssh/config
AddKeysToAgent yes

Это автоматически добавит ключи к агенту, если переменные среды SSH_AUTH_SOCK и SSH_AGENT_PID установлены.

Также проверьте это сообщение на sign_and_send_pubkey: подписание перестало работать: агент отказался от операционной ошибки.

4
ответ дан 2 December 2019 в 01:52

Комбинация ответа @Simon Sudler и этого другого:

1. Your home directory ~, your ~/.ssh directory and the ~/.ssh/authorized_keys file on the remote machine must be writable only by you: rwx------ and rwxr-xr-x are fine, but rwxrwx--- is no good¹, even if you are the only user in your group (if you prefer numeric modes: 700 or 755, not 775).

2. If ~/.ssh or authorized_keys is a symbolic link, the canonical path (with symbolic links expanded) is checked.
Your ~/.ssh/authorized_keys file (on the remote machine) must be readable (at least 400), but you'll need it to be also writable (600) if you will add any more keys to it.

3. Your private key file (on the local machine) must be readable and writable only by you: rw-------, i.e. 600.

(полномочия отвечают конкретно),

https://unix.stackexchange.com/questions/36540/why-am-i-still-getting-a-password-prompt-with-ssh-with-public-key-authentication

решенный мой вопрос в мгновение ока.

1
ответ дан 2 December 2019 в 01:52

Другие вопросы по тегам:

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