Github través de SSH: un caso de uso de gnome-keyring bajo entorno de consola

Yo escribí un post sobre cómo configurar Gnone-keyring en el entorno X (http://lukeluo.blogspot.kr/2013/11/linux-virtual-console3-wmii.html), y mencioné que gnome-keyring es sólo un demonio que proporciona servicio en segundo plano, a través de la API nativa o dbus-api. Así gnome-keyring, no está vinculada a ningún entorno X, y se puede utilizar independiente. Yo no tenía un caso de uso para el uso gnome-keyring en entorno no-X en ese momento.

Me he registrado una cuenta de github hace bastante tiempo, y no lo uso desde entonces. La semana pasada, me juego hasta la github en mi laptop Debian 7, y me di cuenta que el acceso github via ssh es sólo un caso un buen uso de gnome-keyring, tanto en consola de Linux y X windows.

Aquí está el procedimiento para configurar github via ssh, con gnome-keyring proporcionar servicio contraseña. />
1. Usted Generar clave ssh locales, y lo utilizan para iniciar sesión en github
Es posible que tenga su clave ssh ya. Si no es así, tiene github detalle ayuda aquí:

https://help.github.com/articles/generating-ssh-keys

2. El cubo doc git supone que está utilizando un ssh-agent independiente, para proporcionar ssh clave privada db contraseña cada vez que se conecte a github via ssh. Gnome-keyring prestar el servicio ssh-agent también. Después de que ha sido criado, actúa igual que un ssh-agent normal. git es una aplicación de consola. Para utilizarlo sin X, aquí es cómo configurarlo.

A. Hacer que Linux consola pam sesión inicia un servicio de gnome-keyring para usted después de su inicio de sesión a través de la adición de abajo en «/ etc / pam.d / login»

# inicio gnome-keyring y desbloquear la base de datos de inicio de sesión automáticamente
pam_gnome_keyring.so opcional auth
Sesión opcional pam_gnome_keyring.so auto_start

b. Después de conectarse, configurar el servicio de gnome-keyring en línea de comandos, tal como lo hicimos antes en la personalización wmii. Si usa git en la consola mucho, poner esto en su «perfil».

# cofigure componentes gnome-keyring-daemon
eval $ (/ usr / bin / gnome-keyring-daemon – start – Componentes secretos =)
style=»font-family: Courier New, Courier, monospace; font-size: x-small;»> eval $ (/ usr / bin / gnome-keyring-daemon – empezar – componentes = ssh)

eval $ (/ usr / bin / gnome-keyring-daemon – start – Componentes = gpg)

exportación GNOME_KEYRING_CONTROL SSH_AUTH_SOCK GPG_AGENT_INFO

c. compilar el git gnome-keyring helper lib de la fuente git />
obtener el código fuente de este enlace:
https://github.com/git/git/tree/master/contrib/ credencial / gnome-keyring

$ sudo apt-get install libgnome-keyring-dev
$ make
$ git config – camino credential.helper mundial / a / su / compilado / lib / gnome-keyring / git-credencial-gnome-keyring

d. ahora vamos a asegurarnos de que todo está funcionando ahora. Podemos ssh en github sin proporcionar ninguna contraseña.

lucas @ lucas- debian: ~ $ ps-ef | grep clave
luke ; 2511 29457 0 22:49 pts / 0 00:00:00 grep clave
luke 29093 1 0 22:42 tty1 00:00:00 / usr / bin / gnome-keyring-daemon – daemonize – -login
$ env | grep clave />
GPG_AGENT_INFO = / home / luke / .cache / keyring-iyNVdt / gpg: 0:1
GNOME_KEYRING_CONTROL = / home / luke / .cache / keyring-iyNVdt
SSH_AUTH_SOCK = / home / luke / .cache / keyring-iyNVdt / ssh
$ ls-l $ SSH_AUTH_SOCK
srwxr-xr-x 1 luke luke 0 22 de noviembre 22:42 / home / luke / .cache / keyring-iyNVdt / ssh
$ ssh [email protected]
solicitud de asignación de PTY falló en el canal 0
Hola lukeluo! Usted ha autenticado correctamente, pero GitHub no proporciona acceso shell
Conexión a github.com cerrado.

e. ahora clonar el repositorio de GitHub via ssh, hacer algún cambio, a continuación, empuje de nuevo a github. Ninguna contraseña le preguntó durante todo el proceso.

Courier New, Courier, monospace; font-size: x-small;»> $ cd gitexample /

Courier New, Courier, monospace; font-size: x-small;»> Clonación en ‘linux-debian7-admin’ …

Courier New, Courier, monospace; font-size: x-small;»> remoto: La compresión de los objetos:. 100% (15/15), hecho

Courier New, Courier, monospace; font-size: x-small;»> Recepción de objetos: 100% (22/22), 5,06 Kb, hecho.

Courier New, Courier, monospace; font-size: x-small;»> $ cd linux-debian7-admin /

etc casa README.md

$ cp / home / luke / .profile home / luke /
$ cd home / luke /
$ git add profile
$ git commit

Courier New, Courier, monospace; font-size: x-small;»> 1 archivo cambió, 33 inserciones (+)

Courier New, Courier, monospace; font-size: x-small;»> $ git push

contar objetos: 8, hecho Courier New, Courier, monospace; font-size: x-small;»> objetos Comprimir: 100% (4/4), por hacer <. / b>

Courier New, Courier, monospace; font-size: x-small;»> Total 5 (delta 1), reutilizados 0 (delta 0)

Para [email protected]: lukeluo/linux-debian7-admin.git
594b3ee .. aa7b74e master -> maestro
3. Advertencia
Si agrega gnome-keyring en pam.d «login» configure, PAM se genera un proceso de claves para todas las consolas que inicie sesión Porque keyring es la gestión «secretos», y los secretos privados no se puede acceder por otra sesión, incluso dos sesiones pertenecen a un usuario. Dos o más procesos del anillo de claves puedan trabajar sin interferir entre sí. Sólo le costará algo de memoria extra. En su sesión de consola listo «gnome-keyring», si se inicia una sesión X en la línea de comandos, como wmii, generalmente llavero se iniciará de nuevo. Configuración keyring otra vez no hace ningún daño, ya que no se generará ningún nuevo proceso kerying. Ya están trabajando en la sesión actual.

Si

utiliza entorno de consola mucho, un multiplexor de terminal como «pantalla» o «tmux» va a ser su amigo. Esto le ahorrará algo de memoria, ya sólo un proceso de claves se generó por múltiples «de la ventana / pantalla» en la pantalla o tmux.

4. ssh inicio de sesión
Si SSH en su máquina de trabajo, y perfer llavero para ser criado por PAM, añadir a continuación las líneas en / etc / pam. d / sshd, exactamente lo mismo que le hiciste a / etc / pam.d / login:
# inicio gnome-keyring y desbloquear inicio de sesión de base de datos de forma automática
pam_gnome_keyring.so opcional auth
Sesión opcional pam_gnome_keyring.so auto_start
La consola ssh remoto que se funciona igual que una consola local en relación a la capacidad de llavero.
5. su
si do a otro y desea keyring sea iniciado por PAM, agregue la misma configuración a / etc / pam.d / su

auth pam_gnome_keyring opcional . así
sesión opcional auto_start pam_gnome_keyring.so

Asegúrese de añadir un guión (- ) por «su – a alguien» para invocar un shell de entrada, o el «perfil». no será llamado. Es una pequeña sorpresa para mí que el «login» o «default» o «ssh» tienda db no se desbloquea en virtud de este caso por defecto como en otros casos. Si lo hace «su – a alguien» en x terminal, una contraseña pop-up le pedirá ssh clave privada por primera vez. Después de eso, usted será dar el visto bueno a Bajo terminal no-X, que se conecte se acaba de fallar ya que ninguna solicitud de contraseña podría aparecer para que rellene contraseña. Debido a esta advertencia, no recomiendo el uso de claves bajo el caso «su».

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *