4 votes

Passer à openssh-agent

Mon problème est d'obtenir ssh-agent au lieu de gnome-keyring sur une nouvelle installation d'Ubuntu 16.10.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:    16.10
Codename:   yakkety

J'ai désactivé le composant SSH du trousseau Gnome ( X-GNOME-Autostart-enabled=false en gnome-keyring-ssh.desktop ).

Ubuntu 16.10 démarre automatiquement une instance de ssh-agent et devrait propager les variables d'environnement, mais ne le fait que partiellement. Si un terminal est démarré via le lanceur Unity ou Nautilus, $SSH_AUTH_SOCK est défini mais si un terminal est lancé via un raccourci clavier (par défaut ctrl + alt + t ), la variable est vide.

Pstree abrégé :

systemdaccounts-daemon{gdbus}
                         {gmain}
        acpid
        agetty
        avahi-daemonavahi-daemon
        cgmanager
        colord{gdbus}
                {gmain}
        cron
        dbus-daemon
        gnome-keyring-d{gdbus}
                         {gmain}
                         {timer}
        lightdmXorg
                 lightdmupstarthud-service{QDBusConnection}
                                                {gdbus}
                                                {gmain}
                                   indicator-appli{gdbus}
                                                    {gmain}
                                   indicator-bluet{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   indicator-datet{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                                    4*[{indicator-datet}]
                                                    {pool}
                                   indicator-keybo{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   indicator-messa{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   indicator-power{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   indicator-print{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   indicator-sessi{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   indicator-sound{dconf worker}
                                                    {gdbus}
                                                    {gmain}
                                   shurl-dispatcher{gdbus}
                                                        {gmain}
                                                        3*[{url-dispatcher}]
                                   2*[sleep]
                                   2*[upstart-dbus-br]
                                   upstart-file-br
                                   upstart-udev-br
                                   window-stack-br{QDBusConnection}
                                   xbrlapi
                          {gdbus}
                          {gmain}
                 {gdbus}
                 {gmain}
        polkitd{gdbus}
                 {gmain}
        rsyslogd{in:imklog}
                  {in:imuxsock}
                  {rs:main Q:Reg}
        rtkit-daemon2*[{rtkit-daemon}]
        snapd6*[{snapd}]
        systemd(sd-pam)
                 at-spi-bus-laundbus-daemon
                                  {dconf worker}
                                  {gdbus}
                                  {gmain}
                 at-spi2-registr{gdbus}
                                  {gmain}
                 bamfdaemon{gdbus}
                             {gmain}
                 compiz{dconf worker}
                         {gdbus}
                         {gmain}
                 dbus-daemon
                 dconf-service{gdbus}
                                {gmain}
                 gconfd-2
                 gnome-session-bdeja-dup-monito{dconf worker}
                                                   {gdbus}
                                                   {gmain}
                                  gnome-software{dconf worker}
                                                  {gdbus}
                                                  {gmain}
                                  nm-applet{dconf worker}
                                             {gdbus}
                                             {gmain}
                                  polkit-gnome-au{dconf worker}
                                                   {gdbus}
                                                   {gmain}
                                  unity-fallback-{dconf worker}
                                                   {gdbus}
                                                   {gmain}
                                  update-notifier{dconf worker}
                                                   {gdbus}
                                                   {gmain}
                                  zeitgeist-datah{gdbus}
                                                   {gmain}
                                                   4*[{pool}]
                                  {dconf worker}
                                  {gdbus}
                                  {gmain}
                 gnome-terminal-fishpstree
                                  {dconf worker}
                                  {gdbus}
                                  {gmain}
                 gpg-agent
                 ibus-daemonibus-dconf{dconf worker}
                                          {gdbus}
                                          {gmain}
                              ibus-engine-sim{gdbus}
                                               {gmain}
                              ibus-ui-gtk3{dconf worker}
                                            {gdbus}
                                            {gmain}
                              {gdbus}
                              {gmain}
                 ibus-x11{gdbus}
                           {gmain}
                 nautilus{dconf worker}
                           {gdbus}
                           {gmain}
                 ssh-agent
        systemd-journal
        systemd-logind
        systemd-resolve
        systemd-timesyn{sd-resolve}
        systemd-udevd

État du service ssh-agent :

$ systemctl --user status ssh-agent                                                                                                                                                            22:03:56
 ssh-agent.service - OpenSSH Agent
   Loaded: loaded (/usr/lib/systemd/user/ssh-agent.service; static; vendor preset: enabled)
   Active: active (running) since Sun 2016-11-20 21:59:06 CET; 7min ago
 Main PID: 5513 (ssh-agent)
   Croup: /user.slice/user-1000.slice/user@1000.service/ssh-agent.service
           5513 ssh-agent -D -a /run/user/1000/openssh_agent

Nov 20 21:59:06 Cerberus systemd[4879]: Started OpenSSH Agent.
Nov 20 21:59:06 Cerberus agent-launch[5513]: dbus-update-activation-environment: setting SSH_AUTH_SOCK=/run/user/1000/openssh_agent
Nov 20 21:59:06 Cerberus agent-launch[5513]: dbus-update-activation-environment: setting SSH_AGENT_LAUNCHER=openssh
Nov 20 21:59:06 Cerberus agent-launch[5513]: SSH_AUTH_SOCK=/run/user/1000/openssh_agent; export SSH_AUTH_SOCK;
Nov 20 21:59:06 Cerberus agent-launch[5513]: echo Agent pid 5513;

L'environnement de la gnome-terminal-server connaît la bonne SSH_AUTH_SOCK

$ ps aux | grep /usr/lib/gnome-terminal/gnome-terminal-server
max       6408  0.3  0.1 740696 32148 ?        Ssl  22:00   0:01 /usr/lib/gnome-terminal/gnome-terminal-server
max      13129  0.0  0.0  21428  1844 pts/5    S+   22:09   0:00 grep --color=auto /usr/lib/gnome-terminal/gnome-terminal-server
$ xargs -n 1 -0 < /proc/6408/environ | grep SSH_AUTH_SOCK                                                                                                                                      22:09:35
SSH_AUTH_SOCK=/run/user/1000/openssh_agent

Toutes les méthodes de lancement d'un terminal que j'ai essayées ont abouti à ce qu'ils soient des enfants de la gnome-terminal-server dont l'environnement est correct.

Existe-t-il un moyen de résoudre ce problème de mon côté ou dois-je déposer un rapport de bogue ?

2voto

Sarah C Points 11

J'ai réussi à le faire fonctionner, le problème semble être une condition de course.

J'ai d'abord couru systemctl --user mask gnome-keyring-ssh et a conservé le changement de gnome-keyring-ssh.desktop pour désactiver complètement le service SSH de Gnome Keyring. Le simple fait de masquer le service n'a pas suffi.

Ensuite, j'ai créé un fichier de service par écrasement via systemctl --user edit ssh-agent contenant les paramètres suivants :

[Service]
Type=forking

Enfin, j'ai édité /usr/lib/openssh/agent-launch et remplacé exec ssh-agent -D -a $S con ssh-agent -a $S .

J'ai essayé de régler le type de service sur notify , NotifyAccess a all et en cours d'exécution systemd-notify --ready avant d'exécuter ssh-agent mais pour une raison ou une autre systemd n'a pas reçu la notification et s'est heurté à un dépassement de délai de la part du ssh-agent.service .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X