Автор Тема: ssh из Konsole и не должен работать при наличии ssh-agent?  (Прочитано 1864 раз)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Есть файл ~/.ssh/id_rsa (соответствующий публичный ключ тоже). Как только я создал эти файлы при графическом входе в систему в моем KDesktop 7.0.5 у меня запрашивают пароль от KWallet и пароль от закрытого ключа с помощью ksshaskpass.

Благодаря этому (что есть ssh-agent и в него добавляются ключ, который я создал) мой FileZilla успешно заходит на внешние серверы по сертификату с запароленным закрытым ключом.

Следующий этап - вход на внешний сервер по ssh. Для этого запускаю эмулятор терминала Konsole и в нем пишу:
$ ssh example.com
Agent admitted failure to sign using the key.
ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

ssh -vvv показывает, что (отпечатки я заменил, они были одинаковые):
Цитировать
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/kiav/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 148
debug2: input_userauth_pk_ok: fp 32:cc:c8:61:ec:54:c5:40:8e:cc:de:1a:36:28:4e:42
debug3: sign_and_send_pubkey: RSA 32:cc:c8:61:ec:54:c5:40:8e:cc:de:1a:36:28:4e:42
Agent admitted failure to sign using the key.

Т.е. вроде как ключ принят, но авторизации нет, агент отказал.

Ищу в инет. Вижу статью по Ubuntu. Отключаю использование агента вообще:
SSH_AUTH_SOCK=0 ssh example.com
И вот теперь вход на внешний сервер проходит успешно, у меня запрашивается пароль к закрытому ключу прямо в Konsole.

Вообще, это решение по обходу агента меня устраивает. Мне все равно делать алиасы bash, чтобы не колотить для каждого сервера полные доменные имена и имена пользователей. Вопрос сейчас в том так должно быть в принципе или я что-то не доделал и агент с ssh из Konsole мог работать?

На всякий случай я провел эксперимент в консольном входе (без X). Там агент не запущен. Запуск не решает ничего, т.к. ssh-add рассчитывает на то, что ssh-agent будет его родителем. Да и не нужен мне такой вариант работы, я действую всегда из X.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Я думаю, это связано с тем, что вы используете KWallet

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
На какие извращения не идут в новогодние праздники, лишь бы не прописывать IdentityFile в раздел соединения в ~/.ssh/config
Андрей Черепанов (cas@)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
лишь бы не прописывать IdentityFile в раздел соединения в ~/.ssh/config
Прописал, это помогло избавиться от перебора файлов ключей (все равно он только один, другие варианты действительно проверять не надо).

Далее в дело вступает ssh-agent (в лице ksshaskpass). Если надавить на галку сохранения пароля, то пароль пишется в KWallet в папку ksshaskpass, в раздел Пароли. При повторной попытке зайти на сервер по ssh агент уже не лезет с запросом, но ошибка "Agent admitted failure to sign using the key." сохраняется.

И помогает здесь шаманство:
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/kiav/.ssh/id_rsa:
Identity added: /home/kiav/.ssh/id_rsa (/home/kiav/.ssh/id_rsa)

Вот после этого (я даже не делал предварительно ssh-add -d) и агент с запросом пароля не лез, и авторизация на сервере прошла.

Т.е. дело было в пути к ключу, содержащем именно ~ ?
По-умолчанию эта программа добавляет в агента ключ по пути $HOME/.ssh/id_rsa Но это же тоже самое, только путь по-другому записан.

При этом для теста проверял `ssh-add -l`
Там вывод одинаковый, что при ssh-add -c (как записано в ~/.xprofile), что при `ssh-add ~/.ssh/id_rsa`. Получается, что здесь нужна вот такая магия ...


Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
У меня в X-овом сеансе ssh-agent сам запускается без KDEшных костылей (хотя работаю в KDE4).
Андрей Черепанов (cas@)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
У меня в X-овом сеансе
Это, ведь, Сизиф, а не KDesktop?

без KDEшных костылей
А это что? ~/.xprofile ?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Это Школьный Мастер, родной брат KDesktop.
Андрей Черепанов (cas@)