software libgnome kraken keyring for linux git ubuntu gnome-keyring-daemon

linux - libgnome - gitkraken software



Error al usar Git credential helper con gnome-keyring como Sudo (3)

A veces necesito ejecutar sudo git clone ya que a veces el directorio donde necesito hacer un clon lo requiere. Cualquier ayuda sería apreciada

La carpeta en la que intenta clonar el repositorio fue creada por root, por lo que no tiene permiso para escribir o crear una carpeta debajo de ella, a menos que sea root ( sudo ), configure los permisos ( chmod o chown ) y podrá clonar en la carpeta.

chmod 755 /path

Estaba buscando una forma de almacenar credenciales de forma segura mientras me conectaba a nuestro servidor Git que usa SSL. Encontré esta sugerencia de @ james-ward (la única edición que hice fue que actualicé nuestra configuración "sistema" en lugar de nuestra configuración "global" para Git ( https://stackoverflow.com/a/14528360/6195194 )

sudo apt-get install libgnome-keyring-dev cd /usr/share/doc/git/contrib/credential/gnome-keyring sudo make git config --system credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

Entonces puedo correr

git clone https://ipaddress/git/repo.git

y el asistente de credenciales almacenará mis credenciales, sin embargo, cuando ejecuto lo siguiente:

sudo git clone https://ipaddress/git/repo.git testfolder

me da el siguiente error

** (process:3713): CRITICAL **: Error communicating with gnome-keyring-daemon

A veces necesito ejecutar sudo git clone ya que a veces el directorio donde necesito hacer un clon lo requiere. Cualquier ayuda sería apreciada.

Versiones que estoy usando: - git versión 1.9.1 - Ubuntu Server 14.0.4

¡Gracias de antemano! -Richard O.


Además del uso de sudo, tenga en cuenta que en 2016, libgnome-keyring es específico de GNOME y ahora está en desuso (desde enero de 2014, en realidad ).

Git 2.11+ (Q4 2016) incluirá un nuevo asistente de credenciales usando libsecret .

Ver commit 87d1353 (09 Oct 2016) por Mantas Mikulėnas ( grawity ) .
(Fusionada por Junio ​​C Hamano - gitster - en commit bfe800c , 26 oct 2016)

Se ha agregado a contrib/credential/ un nuevo asistente de credenciales que habla a través de " libsecret " con implementaciones de la API del servicio secreto XDG.

utiliza libsecret que puede admitir otras implementaciones de la API del servicio secreto XDG.

  1. Puede instalar libsecret y las bibliotecas de desarrollo con:

    sudo apt-get install libsecret-1-0 libsecret-1-dev

  2. Entonces necesita construir el administrador de credenciales

    cd /usr/share/doc/git/contrib/credential/libsecret (copie la carpeta credential / libsecret de la source , si no se instala automáticamente)

    sudo make

  3. Finalmente, debe apuntar git al archivo recién creado en su configuración:

    git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Como señaló mati865 en los comentarios :

Cabe señalar que algunas distribuciones como Arch y Fedora proporcionan ayudantes disponibles como binarios y fuente.

  • Binario Libsecret en Arch: /usr/lib/git-core/git-credential-libsecret , y
  • Binario Libsecret en Fedora: /usr/libexec/git-core/git-credential-libsecret .

Usar sudo ejecuta el comando como root. Es como pedirle a su administrador de sistemas, si tiene uno, que ejecute un comando para usted. El usuario root no está destinado a hacer nada relacionado con el desarrollo y, por lo tanto, git no debe usarse como root.

Una vez que ejecuta un comando como otro usuario (root o cualquier otro), se espera que este otro usuario no pueda comunicarse normalmente con su usuario habitual (en particular, no encuentra aquí su gnome-keyring-daemon).

Entonces, la respuesta es: "no hagas eso". Si realmente necesita clonar en un directorio particular, otórguese permisos en ese directorio como se sugiere en la respuesta de CodeWizard. En realidad, si necesita clonar en un directorio donde no tiene permiso, pregúntese si está haciendo algo mal: en principio, esto no debería suceder (supongo que: ya usó demasiado sudo en el pasado y esta es la razón por la que tiene directorios um-escribibles aquí y allá).