Limitando usuarios ssh en Mercurial - Userlinux.net

Si algo bueno tiene Mercurial es que permite la autentificación de usuarios a través de SSH. Es muy sencillo agregar un nuevo usuario a un desarrollo/repositorio: adduser y con meterlo dentro del grupo correspondiente al desarrollo llegaría. Pero ¿qué ocurre si no queremos que ese usuario haga otra cosa que…

Limitando usuarios ssh en Mercurial

21.Jul.2010 ~ 14 Comentarios ~ 1387 Lecturas

Si algo bueno tiene Mercurial es que permite la autentificación de usuarios a través de SSH. Es muy sencillo agregar un nuevo usuario a un desarrollo/repositorio: adduser y con meterlo dentro del grupo correspondiente al desarrollo llegaría. Pero ¿qué ocurre si no queremos que ese usuario haga otra cosa que no sean comandos hg?.

Conociendo la existencia de hg-ssh no ocurre demasiado, se trata de un script que hemos de referenciar en el authorized_keys del usuario que acabamos de crear de forma que todos los comandos entrantes pasen por este script. El script se encarga de parsear el comando que se pide en ejecución: si es de la familia de Mercurial lo ejecuta, en cualquier otro caso mostrará un error.

Ejemplo de authorized_keys:

command="~/hg-ssh /home/repo1 /home/repo2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAA...

He optado por copiar el archivo hg-ssh en el directorio home del usuario, pero se podría referenciar directamente el que trae de ejemplo la instalación de Mercurial.

Nos encontramos con otro pequeño inconveniente, si el script se tiene que referenciar en el archivo authorized_keys como he dicho antes, el usuario debe tener su clave pública DSA/RSA configurada en el servidor, así que para estar seguros de que no se salta las restricciones impuestas por hg-ssh, deberíamos desactivar cualquier intento de acceso por contraseña:

# nano /etc/ssh/sshd_config
Match Group desarrolladores
PasswordAuthentication no

Reiniciamos sshd y todo debería funcionar de forma adecuada, el usuario podrá hacer commits, push, pull, update... desde la máquina cuya clave id_dsa.pub hemos agregado en el servidor pero no podrá acceder a través de ssh a ningún otro comando, ni a shell; por lo tanto creo que se ha conseguido el principal objetivo.

Categorías: sistemas
Tags: ssh mercurial

Comentarios


Todavía no hay comentarios

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece
  • r0sk
  • flexo
  • r0sk
  • MarcosBL
  • r0sk
  • isra

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ubuntu juegos 2007 web twitt futbol cumpleaños ds django mundial apple rfilms conciertos alemania_2006 lugo macosx programación frases mercurial lucux php userlinux debian blog rsidenotes twitter felicidades cakephp meme ssh bsd barça sidenotes iphone bash vacaciones blogs opinion blogsfera seguridad linux champions humor freebsd personal mysql nintendo openbsd canción sysadmin bake games ps3 2008 cake deportes hack films mac league

Archivo

Social

Enlaces de interés