Возможно сделать XTERM, и брелок для ключей Gnome сотрудничают?

Я провел некоторое время, играя с разнообразными минималистическими аудиоплеерами и сегодня нахожу меня особенно неравнодушным к относительно недавнему xmms21, потомок (несколько) почтенного xmms аудиоплеера.

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

0
14.04.2011, 22:59
3 ответа

Вы выполняете xterm из своей сессии Gnome также?

Попробуйте это в Терминале Gnome:

echo $SSH_AUTH_SOCK

Затем попробуйте то же в xterm.

Это должно распечатать что-то как

/tmp/keyring-abc123/ssh

в обоих.

Я предполагаю, что это не печатает что-то как этот в xterm.

Если это пусто, что-то очищает его (или не устанавливает его).

Если взгляды больше как

/tmp/ssh-defgh67890/agent

затем Вы также выполняете ssh-агент куда-нибудь, который станет сбивающим с толку.

Вот то, что я попробовал бы:

Выполненный echo $0 в обоих. Делает каждый имеет - в запуске и другом нет?

Если так, Вы, вероятно, выполняете ssh-агент в оболочках входа в систему, но не оболочках невхода в систему. Взгляните в Вашем ~/.bashrc или ~/.bash_profile или эквивалентные сценарии и решают проблему.

Или изменение, запускается ли xterm как оболочка входа в систему:

  1. использование xterm*loginShell: true или xterm*loginShell: false в Вашем ~/.Xdefaults или ~/.xresources?
  2. путем выполнения xterm -ls или xterm (без -ls)

Скопируйте установку, Вы имеете для Терминала Gnome под Предпочтениями Профиля-> Заголовок и Команда-> Команда выполнения как оболочка входа в систему.

Если это перестало работать, попытайтесь добавить echo операторы в Ваших файлах запуска. Необходимо будет перенаправить вывод к использованию файла журнала echo $SSH_AUTH_SOCK >> ~/ssh-debug.log или подобный.

Затем выйдите из системы и въезжайте задним ходом и взгляните на Ваш ~/ssh-debug.log.

Затем выполненный Терминал Gnome и взгляд на него снова.

Затем выполненный xterm и взгляд и взгляд на него снова.

Ищите различия.

Взгляните на/etc/pam.d/gdm и Систему-> Предпочтения-> Приложения Запуска. У Вас есть какая-либо другая конфигурация ssh-агента где-нибудь в/etc/pam.d?

Посмотрите /etc/X11/Xsession и сценарии, которые это называет.

2
28.01.2020, 02:29
  • 1
    , Когда я echo $SSH_AUTH_SOCK в xterm я имею: /tmp/ssh-mIDzpMya1902/agent.1902. В терминале гнома: /tmp/keyring-F5L0Fh/ssh. Если я установил export SSH_AUTH_SOCK=/tmp/keyring-F5L0Fh/ssh затем xterm работает с брелоком для ключей гнома. Что я должен сделать для устанавливания этого значения в xterm (это значение должно совпасть с в терминале гнома, но каждом новом окне терминала это значение изменения)? –   15.04.2011, 16:22
  • 2
    Как я объяснил, необходимо будет посмотреть собственную установку, потому что это отличается от моей. Посмотрите на Ваш ~/.bashrc и ~/.bash_profile запускаться с и видеть, содержат ли они ssh-agent. В противном случае посмотрите на /etc/pam.d и /etc/X11/Xsession. –  Mikel 16.04.2011, 01:21

В то время как я не выяснял, какое волшебство заставляет терминал гнома получить корректный SSH_AUTH_SOCK от гнома-демона брелока для ключей, я нашел, что обходное решение установило правильное значение в XTerm (или другие терминалы). Добавьте следующее к своему .bashrc:

SSH_AUTH_SOCK=`netstat -xl | grep -o '/tmp/keyring-.*/ssh$'`
[ -z "$SSH_AUTH_SOCK" ] || export SSH_AUTH_SOCK

Что это делает: это ищет локальный сокет слушания, который имеет имя, соответствующее шаблону "/tmp/keyring - */ssh", и устанавливает значение SSH_AUTH_SOCK к этому, если это присутствует.

Источник: http://ubuntuforums.org/showthread.php?p=10786874#post10786874

0
28.01.2020, 02:29

Вы также можете посмотреть обходной путь, указанный в Red Hat Bugzilla - Ошибка 713955 - Переменная среды SSH_AUTH_SOCK отсутствует в терминалах, запускаемых с помощью сочетания клавиш , добавив ее в свой ~ / .bashrc :

#GPG and SSH agent not exported when running terminal by shortcut
if [ -z "$GPG_AGENT_INFO" -a -z "$SSH_AUTH_SOCK" -a -n "$GNOME_KEYRING_CONTROL" ] ; then
        #derive GPG and SSH agent info from GNOME_KEYRING_CONTROL
        export GPG_AGENT_INFO="$GNOME_KEYRING_CONTROL/gpg:0:1"
        export SSH_AUTH_SOCK="$GNOME_KEYRING_CONTROL/ssh"
fi

В моем случае (Centos 6 с gnome 2.28) переменная GNOME_KEYRING_CONTROL не существует (но GNOME_KEYRING_SOCKET существует), а связка ключей gnome "морской конек" похоже, не предоставляет GPG_AGENT_INFO.

В итоге я остановился на этой версии (также помещенной в ~ / .bashrc ):

set_keyring_agent() {
# SSH agent not exported when running terminal by shortcut
# see https://bugzilla.redhat.com/show_bug.cgi?id=713955#c4
# and http://unix.stackexchange.com/questions/11355/its-possible-to-make-xterm-and-gnome-keyring-work-together
if [[ -n "${GNOME_KEYRING_SOCKET}" && -z "${SSH_AUTH_SOCK}" ]] ; then
  #derive SSH agent info from GNOME_KEYRING_SOCKET
  local ssh_auth_socket="${GNOME_KEYRING_SOCKET}.ssh"
  if [[ -S "${ssh_auth_socket}" ]] ; then
    export SSH_AUTH_SOCK="${ssh_auth_socket}"
  fi
fi
}

set_keyring_agent
1
28.01.2020, 02:29

Теги

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