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

r0sk 21.Jul.2010 0 Comentarios 260 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

Escribe un comentario

Nick
Email
URL

Buscar

Cargando...

Categorías

Últimos comentarios

  • BartlettLilly20
  • r0sk
  • coder
  • argordmel
  • uveic
  • MarcosBL
  • quemada
  • alexander
  • Hakky111
  • tramel
  • hoyadas
  • hoyadas
  • hoyadas
  • Anubys
  • Arturo

Tagcloud

lugo freebsd seguridad futbol iphone mysql champions userlinux alemania_2006 copa bsd cakephp rfilms deportes meme blogs conciertos bake debian macosx apple humor programación música games 2008 beers tip lucux cake sysadmin ssh ibook films cumpleaños bash league barça soccer mundial frases opinion felicidades hack php juegos cms personal 2007 ubuntu ds mac sidenotes openbsd linux blogsfera rsidenotes blog nintendo san_froilan

Archivo

Social

Twitter

Enlaces

Enlaces de interés