No quiero que gnome-keyring se interponga en mis confirmaciones de git, en parte porque bloquea toda la pantalla mientras solicita una contraseña, incluso en KDE (aunque ahora me cambié a GNOME). Si bien aprecio la conveniencia de no tener que ingresar mi contraseña SSH cada vez, tener que saltar de una ventana a otra lo cancela personalmente. Es solo una cosa de comodidad :/
Lo intenté git config --global --unset credential.helper
y git config --system --unset credential.helper
, pero parece que no tienen ningún efecto. Como ahora estoy usando GNOME, prefiero no eliminar gnome-keyring. ¿Hay alguna otra opción que pueda hacer? Actualmente estoy en Ubuntu 14.10 y lo he hecho tanto con Kubuntu como con Ubuntu GNOME. Gracias.
ACTUALIZACIÓN 17 de noviembre de 2014
Esto aparentemente afecta a todo SSH. Intenté hacer
sudo rm /etc/xdg/autostart/gnome-keyring-ssh.desktop
Pero eso no funcionó. Puedo hacer
gnome-keyring-daemon --replace -c pkcs11,secrets,gpg
una vez en cada sesión, pero me gustaría que sea permanente. Sigue buscando...
Respuesta1
Simplemente copie el .desktop
archivo relevante de /etc/xdg/autostart
a ~/.config/autostart
y agréguelo Hidden=true
:
(cat /etc/xdg/autostart/gnome-keyring-ssh.desktop; echo Hidden=true) > ~/.config/autostart/gnome-keyring-ssh.desktop
entoncesrecargar gnomo-shell(presione Alt+ F2, luego escriba ry presione Enter).
Este es el únicosolución fácil de usareso ha funcionado para mí (es decir, no tener que vincular suavemente el.escritorioarchivo a/desarrollador/nuloo chmod 0
el gnome-keyring-daemon
). De hecho, el enlace suave a/desarrollador/nulodejó de funcionar para mí en GNOME 3.16.
El crédito va anus.
Respuesta2
No puedo hablar por otras versiones de Ubuntu que no sean Trusty, y GNOME es un objetivo en constante movimiento que puedes garantizar que cada versión será diferente, pero esto es lo que he encontrado que funciona de manera más confiable:
mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop
El inicio de la sesión en Unity, al menos, y muy probablemente también en GNOME3, es extraño: ejecutará los scripts Upstart /usr/share/upstart/sessions/
y luego ejecutará todas las entradas del escritorio de inicio automático en /etc/xdg/autostart
y gnome-keyring
, y muchas otras cosas están en ambos (y probablemente ejecute cosas en /usr/share/upstart/xdg/autostart
, también; no probé eso).
La gnome-keyring-ssh
entrada advenediza buscará esa X-GNOME-Autostart-enabled=false
línea en la entrada .desktop local del sistema o del usuario y saldrá, luego ssh-agent
se ejecutará la sesión estándar. Luego , todo el sistema gnome-keyring-ssh
se iniciará /etc/xdg/autostart
a menos que tenga una entrada coincidente en el inicio automático local de su usuario, en cuyo caso se ejecutará en su lugar.
Solía ser suficiente tener esa enable=false
línea en el inicio automático local, pero recientemente (como en mayo de 2016, más de dos años después del período LTS de Trusty) ese comportamiento cambió y necesita algo parecido a una entrada completa. Todavía estoy investigando el conjunto preciso de claves necesarias y la actualización del paquete infractor responsable.
¿Por qué la gente de GNOME no se limitó a pasar al agente clave OpenSSH?nadie lo sabe. Quizás le gustaría sugerirles que adopten un comportamiento más sensato.en esta entrada de Bugzilla.
Respuesta3
Una forma agradable y limpia de desactivar sólo el componente ssh-agent de gnome-kerying:
gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false
Respuesta4
Solución: deshabilite gnome-keyring usando dpkg-divert
sudo dpkg-divert --local --rename /usr/bin/gnome-keyring-daemon
La próxima vez que inicies sesión, desaparecerá. Esa línea es todo lo que necesita, pero siga leyendo para obtener una explicación y advertencias.
Breve explicación
Esta solución cambia el nombre del programa a gnome-keyring-daemon.distrib para que no se pueda encontrar.
Cuando inicia sesión, en lugar de que gnome-keyring intente manejar la integración ssh, las solicitudes de contraseña irán directamente a ssh-agent. Puedes desbloquear tu clave ssh para confirmaciones de git usando el ssh-add
comando habitual.
Advertencias y remordimientos
El llavero de gnomo está profundamenteentrelazadoscon el escritorio Gnome. Sin él, algunas cosas pueden dejar de funcionar hasta que se instale un reemplazo.
Para volver a habilitar Gnome Keyring
sudo dpkg-divert --remove --rename /usr/bin/gnome-keyring-daemon
Puede que estés usando Gnome Keyring y no lo sepas
Muchas aplicaciones que pueden guardar sus contraseñas, como Chromium y Evolution, las cifran utilizando una clave maestra almacenada en Gnome Keyring. Deshabilitar Gnome Keyring evita el acceso a todas esas contraseñas almacenadas. Es una buena idea antes de desactivar Gnome Keyring hacer una copia de seguridad de las contraseñas guardadas.
Copia de seguridad del llavero Gnome
Puede hacer una copia de seguridad de sus claves copiando los archivos en ~/.local/share/keyrings/. Los secretos están cifrados, por lo que, dependiendo de su postura de seguridad, es posible que desee hacer una copia de seguridad de ellos como texto sin formato. Para hacerlo, utilice el programa "Contraseñas y claves" (también conocido como "Seahorse") para establecer temporalmente una contraseña vacía para el Conjunto de claves de inicio de sesión. (Consejo: Seahorse oculta la opción de cambiar contraseña en el menú contextual del botón derecho).
Advertencia: las contraseñas pueden almacenarse en texto sin formato
Chromium y Google Chrome dependen de un demonio llamado "Servicio Secreto" para obtener una clave de cifrado para las contraseñas guardadas. Si falta el Servicio Secreto, que será una vez que desactive Gnome Keyring, guardarán sus contraseñassin cifrar. A diferencia de Firefox, los navegadores basados en Chrome actualmente no ofrecen una forma de establecer manualmente una contraseña principal.
Integración del servicio secreto de Freedesktop.org
Gnome Keyring es sólo uno de los programas que puede actuar como demonio del Servicio Secreto. Para asegurarse de que las contraseñas guardadas estén cifradas en Chromium y Evolution, puede instalar keepassxc y habilitar el Servicio Secreto en la configuración.
Explicación adicional
¿Por qué no utilizar simplemente chmod
o mv
?
Los cambios mediante chmod o mv se revertirán cuando se actualice el sistema. Al usar dpkg, esta solución persistirá en cualquier cosa, incluso en una actualización a una nueva versión de Ubuntu.
¿Existe una forma menos drástica?
Al momento de escribir este artículo, no parece posible decirle a Gnome Keyring que continúe brindando integración del servicio secreto y deje de jugar con ssh-agent. Para muchas personas eso sería ideal, por lo que esperamos que Gnome agregue esa opción en el futuro.
Por qué otros métodos no funcionan
A lo largo de los años, se han propuesto muchas soluciones diferentes que no funcionan en la siguiente versión. He aquí un breve resumen de por qué no.
Configurar el llavero de Gnome
La solución ideal sería configurar Gnome Keyring para que haga lo correcto. De hecho, existe una opción de línea de comando --components
que casi funciona. Permite especificar qué componentes inicializar:
gnome-keyring-daemon --components secrets,ssh,pkcs11
Se podría omitir ssh de la lista y, en teoría, no arruinaría la autenticación ssh. Desafortunadamente, esa no fue mi experiencia. Quizás el problema fue que gnome-keyring se estaba iniciando desde múltiples ubicaciones (ver más abajo), pero en resumen: no hay forma de decirle a Gnome Keyring quenuncacargue el componente ssh, solo para decirahora no.
apto para eliminar llavero-gnomo
La solución obvia de eliminar el paquete gnome-keyring también desinstala todos los paquetes que dependen de él, incluido gnome-core. Si bien hay formas de evitarlo, es fácil terminar accidentalmente desinstalando todo el entorno de escritorio GNOME.
Múltiples vectores de ataque
Una de las cosas que hace que gnome-keyring-daemon sea tan difícil de eliminar es que se inicia mediante (al menos) cuatro métodos diferentes al iniciar sesión, cada uno de los cuales debe desactivarse de una manera particular.
- PAM (Módulos de autenticación conectables) en /etc/pam.d/gdm-password
- servicio de usuario y socket de systemd
- sesión de usuario systemd.slice en /usr/share/dbus-1/services/
- Inicio automático de XDG en /etc/xdg/autostart/gnome-keyring-*.desktop