User Tools

Site Tools


informatica:linux:ssh

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
informatica:linux:ssh [2013/08/26 08:38] – created joseinformatica:linux:ssh [2013/12/23 09:39] javi
Line 1: Line 1:
-====== Modo debug ======+====== SSH ====== 
 + 
 +===== Modo debug ===== 
 En el sevidor: En el sevidor:
   /usr/sbin/sshd -d -p <port>   /usr/sbin/sshd -d -p <port>
Line 5: Line 8:
 En el cliente ponemos tantas v como nivel de debug, de 1 a 3: En el cliente ponemos tantas v como nivel de debug, de 1 a 3:
   ssh -vvv -p <port> <servidor>   ssh -vvv -p <port> <servidor>
 +  
 +===== Restringir comandos autorizados =====
 +
 +Queremos ejecutar desde la maquina "cliente" solo el comando rsync en la maquina "servidor" con unos parametros especificos. Todo lo demas debe ser rechazado.
 +
 +1. (Opcional) Permitir ssh con contrasenya.
 +
 +1.1 (Servidor) Editar:
 +
 +<code>
 +sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
 +sudo vim /etc/ssh/sshd_config
 +</code>
 +
 +Y dejar la siguiente linea asi:
 +
 +1.2 (Servidor) Recargar el servicio ssh:
 +
 +  sudo service ssh reload
 +
 +2. (Servidor) Crear un usuario:
 +
 +  sudo useradd -m user1
 +  sudo passwd user1
 +
 +3. (Cliente, Servidor) [[informatica:linux:ssh:login_intercambio_claves|Intercambiar las claves entre cliente y servidor]]
 +
 +4. (Cliente) Determinar que comando lanza rsync en el lado servidor. Para ello lanzo el comando rsync desde el lado cliente con un -v:
 +
 +  rsync -arvv --no-implied-dirs --ignore-errors 'server.example.com:/srv/backups/*' /srv/archive/
 +  
 +Parte relevante de la salida:
 +
 +  opening connection using: ssh server.example.com rsync --server --sender -vvlogDtpre.iLsf --ignore-errors . "/srv/backups/*" 
 +
 +Anotamos esa linea, quitando las comillas, y la usamos en el paso siguiente.
 +
 +6. (Servidor) Editamos "authorized_keys" para permitir exactamente el comando anotado en el paso 5, y ningun otro.
 +
 +  sudo cp /home/user1/.ssh/authorized_keys /home/user1/.ssh/authorized_keys.bak
 +  sudo vim /home/user1/.ssh/authorized_keys
 +
 +Y anyadir al principio de la entrada de "cliente" el comando copiado del paso anterior a partir del comando rsync y sin comillas:
 +
 +  rsync --server --sender -vvlogDtpre.iLsf --ignore-errors . "/srv/backups/*"
 +  
 +El archivo queda de la siguiente forma:
 +
 +  command="rsync --server --sender -vvlogDtpre.iLsf --ignore-errors . /srv/backups/*" ssh-dss AAAAB3NzaC1kc3MAAACBAKOX4esNuet8Tb9LMPtGnR8LfhRg4kKfS7A6hLUyxacfxlZu+Sd9T1eVNDhPQAhwFAyPMEhg+lYFhymHX90nSIaFXcDbtLQUE6rjSNQktRI21twDsbwFwn7JYFXGYMCEnYMc1wArtUHq6HE9lseHgQ4pXRbwE85se4f4j6AN7sD9AAAAFQDxcRSrnl1YXaXPAq6wT6SPj8UUsQAAAIEAhBRydGpBMSD+TRD6ax/RMTTn8SESO7YM+Zqlz0p+jkxCs26F6EqtTmwxptd0cXNHNx8VD0mw31e3v85ABXdmhfTQjvkriKDbwbW1ZNzy1fekGuSYKBngFNXA5K6guHqdAtphQNt1RrgRT6JULk9xK1Gu/wIzIpw+Q60dL+9t5ngAAACAbt80vmokJ/9d2VWeFaSzGd30LRhhT6KERhUl0GdbbQ7sTjkOLNGQJin1ogZvi8+W+VlTF0IYnELsXVCZAKS1FrLQe8isuNb9sHnc5047NJFOM8lxOBSKP4bB5ds28PSTQ1W4UNZf31uD7+Yph5YrWvlvsThUAIfOiIbz03K6tkc= user1@client.example.com
 +
informatica/linux/ssh.txt · Last modified: 2015/04/13 20:19 by 127.0.0.1