Git через ssh не автоматически находит ключ после обновления до 16.04

Проблема

Недавно я установил Kubuntu 16.04.2 на свой компьютер. С тех пор я больше не могу использовать свои ssh-ключи для доступа к репозиториям bitbucket и github. В старой системе (Ubuntu 14.04) появилось всплывающее окно с заголовком «Разблокировать закрытый ключ» для первого использования ключа (с запросом кодовой фразы), и я был настроен на оставшуюся часть сеанса.

Начиная с обновления, я получаю следующую ошибку:

$ git pull Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

Это связано с тем, что ключ еще не добавлен в ssh-agent (пока). Я могу сделать это вручную, используя:

$ ssh-add ~/.ssh/my_key Enter passphrase for .ssh/my_key:

, который является обходным путем.

Вопрос

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

Что я мог бы (моя система) отсутствовать для этого?

Дополнительная информация

Не уверен, что это актуально, но я использую LDAP, поэтому я сохранил содержимое своего дома при переходе с Ubuntu 14.04 (с Unity) на 16.04 (с KDE). Для моих ключей шифрования электронной почты поведение не изменилось, и меня попросили ввести парольную фразу через всплывающее окно. Существует еще один вопрос, связанный с аналогичной проблемой. Это, однако, имеет дело с другой версией и имеет другую цель (они заставляют ее работать на консоли, мне бы хотелось, чтобы я всплывал).
3
задан 28 June 2017 в 14:17

4 ответа

Как уже сказано, добавьте

IdentityFile ~/.ssh/my_key AddKeysToAgent yes

к вашему ~/.ssh/config, чтобы добиться аналогичного поведения.

Если я добавлю (AddKeysToAgent yes) в свою локальную конфигурацию ssh (~/.ssh/config), клавиши также сохраняются. Однако запрос находится в терминале, что само по себе неплохо, но я хотел бы понять, как получить всплывающее окно назад.

Всплывающее окно старшего Ubuntu исходило из gnome-keyring, где вы сохранили свой ключ. Это, очевидно, не в версии KDE Ubuntu.

Нет простого способа получить одно и то же приглашение от чистого OpenSSH. Но вы можете попробовать экспериментировать с KWallet, который может иметь аналогичную функциональность.

2
ответ дан 18 July 2018 в 10:59

Имена файлов по умолчанию для файлов с идентификаторами по умолчанию:

# IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa # IdentityFile ~/.ssh/id_ecdsa # IdentityFile ~/.ssh/id_ed25519

Добавить свой собственный файл в /etc/ssh/ssh_config или переименовать, он должен сделать трюк.

0
ответ дан 18 July 2018 в 10:59

Как уже сказано, добавьте

IdentityFile ~/.ssh/my_key AddKeysToAgent yes

к вашему ~/.ssh/config, чтобы добиться аналогичного поведения.

Если я добавлю (AddKeysToAgent yes) в свою локальную конфигурацию ssh (~/.ssh/config), клавиши также сохраняются. Однако запрос находится в терминале, что само по себе неплохо, но я хотел бы понять, как получить всплывающее окно назад.

Всплывающее окно старшего Ubuntu исходило из gnome-keyring, где вы сохранили свой ключ. Это, очевидно, не в версии KDE Ubuntu.

Нет простого способа получить одно и то же приглашение от чистого OpenSSH. Но вы можете попробовать экспериментировать с KWallet, который может иметь аналогичную функциональность.

2
ответ дан 24 July 2018 в 19:42
  • 1
    Спасибо, это указывало мне в правильном направлении. Согласно это и , эта установка SSH_ASKPASS=/usr/bin/ksshaskpass может сделать трюк. – m00am 28 June 2017 в 14:34
  • 2
    нет, он не будет делать, потому что ASKPASS используется, только если процесс не имеет ТЕЛЕТАЙП (см. man ssh). – Jakuje 28 June 2017 в 14:36

Имена файлов по умолчанию для файлов с идентификаторами по умолчанию:

# IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa # IdentityFile ~/.ssh/id_ecdsa # IdentityFile ~/.ssh/id_ed25519

Добавить свой собственный файл в /etc/ssh/ssh_config или переименовать, он должен сделать трюк.

0
ответ дан 24 July 2018 в 19:42
  • 1
    Спасибо и +1. Это решает часть поиска и уже делает мою жизнь намного проще :) Если я добавлю (AddKeysToAgent yes) в свою локальную конфигурацию ssh (~/.ssh/config), клавиши также будут сохранены. Однако запрос находится в терминале, что само по себе неплохо, но я хотел бы понять, как получить всплывающее окно назад. – m00am 28 June 2017 в 12:51
  • 2
    Не рекомендуется изменять общесистемную конфигурацию /etc/ssh/ssh_config. Используйте ~/.ssh/config. – Jakuje 28 June 2017 в 13:52

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

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