Автор Тема: Openssh спрашивает разрешения  (Прочитано 5526 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #30 : 16.12.2015 08:35:41 »
Проверю завтра на проблемной машине.
Хм... также первое ложно, но всё равно это проклятое предупреждение вылазит:
$ [ -x "$SSH_ADD" -a -S "${SSH_AUTH_SOCK-}" ] || echo false
false
$ [ -r "$HOME/.ssh/id_dsa" -o -r "$HOME/.ssh/id_rsa" ] || echo false
$ [ $("$SSH_ADD" -L 2>/dev/null |grep -c ^ssh-) -eq 0 ] || echo false
Вот кто мне объяснит, почему тогда "разрешение" спрашивает ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #31 : 16.12.2015 08:55:20 »
Запустите сккрипт через
sh -x скрпти посмотрите

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #32 : 17.12.2015 08:41:42 »
$ sh -x .xprofile
+ SSH_ADD=/usr/bin/ssh-add
+ '[' -x /usr/bin/ssh-add -a -S /home/admin/.ssh/agent ']'
+ '[' -r /home/admin/.ssh/id_dsa -o -r /home/admin/.ssh/id_rsa ']'
++ /usr/bin/ssh-add -L
++ grep -c '^ssh-'
+ '[' 1 -eq 0 ']'
+ unset SSH_ADD
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #33 : 17.12.2015 08:58:40 »
У вас сейчас не выполеислся
/usr/bin/ssh-add -с

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #34 : 17.12.2015 09:10:15 »
У вас сейчас не выполеислся
В том и дело, что похоже выполнился! Потому что "разрешение" спрашивает, хотя по условию не должно.
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #35 : 17.12.2015 09:21:09 »
А вообще, для отладки, можете как-то так видоизменить этот скрипт, что-бы он при входе в сеанс X-в залогировал свою работу:

#!/bin/sh

SSH_ADD=/usr/bin/ssh-add

ssh_test_key() {
set -x
if [ -x "$SSH_ADD" -a -S "${SSH_AUTH_SOCK-}" ] &&
   [ -r "$HOME/.ssh/id_dsa" -o -r "$HOME/.ssh/id_rsa" ] &&
   [ $("$SSH_ADD" -L 2>/dev/null |grep -c ^ssh-) -eq 0 ]; then
    return 1
else
    return 0
fi
set +x
}

ssh_test_key &> .ssh_add.log
[ $? ] || "$SSH_ADD" -c

unset SSH_ADD

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #36 : 17.12.2015 09:46:49 »
Вот так в логе:
$ cat .ssh_add.log
++ '[' -x /usr/bin/ssh-add -a -S /home/admin/.ssh/agent ']'
++ '[' -r /home/admin/.ssh/id_dsa -o -r /home/admin/.ssh/id_rsa ']'
+++ /usr/bin/ssh-add -L
+++ grep -c '^ssh-'
++ '[' 0 -eq 0 ']'
++ return 1
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #37 : 17.12.2015 09:47:34 »
[ $? ]
Это что значит ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #38 : 17.12.2015 09:54:56 »
Код, который вернула предыдущая команда

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #39 : 17.12.2015 09:56:25 »
Вот так в логе:
Я не вижу вызова
ssh-add -c

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #40 : 17.12.2015 09:57:29 »
Код, который вернула предыдущая команда
И что там сейчас, 1 ?

++ '[' 0 -eq 0 ']'
Я всё равно не понял, почему сейчас-то вдруг стало 0 = 0, когда точно такая конструкция в изначальном варианте возвращает 1 = 0 ?..
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #41 : 17.12.2015 10:03:35 »
И что там сейчас, 1 ?
Да (истина)


    ++ '[' 0 -eq 0 ']'

Я всё равно не понял, почему сейчас-то вдруг стало 0 = 0, когда точно такая конструкция в изначальном варианте возвращает 1 = 0 ?.

Похожеssh-add  -L
Вернула что-то другое

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #42 : 17.12.2015 10:04:58 »
Можно для дальнейшего анализа залогировать содержание вывода
ssh-add  -L

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Re: Openssh спрашивает разрешения
« Ответ #43 : 17.12.2015 10:15:24 »
ssh-add  -L
В вашем случае:
$ ssh-add -L 2>/dev/null
The agent has no identities.
В изначальном, есть одна строчка с ключом, поэтому 1.
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Openssh спрашивает разрешения
« Ответ #44 : 17.12.2015 10:16:31 »
ssh-add -L 2> /dev/null | grep -c ^ssh-Как я понял, такая конструкци/ возвращает число найденных ключей.

Если ключеё нет, то должна выполнится
ssh-add -с
man ssh-sdd
Цитировать
       -c     Обозначает, что добавленная идентификация  перед  использованием
              должна    быть    подтверждена.   Подтверждение   осуществляется
              посредством SSH_ASKPASS-программы,  упоминаемой  ниже.  Успешное
              подтверждение     подтверждается     нулевым     кодом    выхода
              SSH_ASKPASS-программы перед  тем,  как  в  окно  запроса  введён
              текст.