meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
linux:ssh [2013/06/07 14:17] – [SSH Transparente] lclinux:ssh [2023/01/18 14:11] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag>ssh}}
 +===== SSH =====
 +==== Clientes SSH ====
 +  * http://sourceforge.net/directory/internet/ssh/freshness:recently-updated/
 +  * http://sourceforge.net/projects/pacmanager/?source=directory
 +
 +=== Para Windows ===
 +  * http://smartty.sysprogs.com/
 +==== Automatizar SSH ====
 +
 +Una de las cosas más frecuentes es conectarte por ssh a varias máquinas y ejecutar los mismos comandos. Para automatizar esta tarea podemos usar varias herramientas:
 +
 +  * ClusterSSH http://sourceforge.net/projects/clusterssh/
 +  * Paramiko http://www.lag.net/paramiko/
 +
 +==== Bastionado ====
 +http://inteligenciaux.wordpress.com/2010/09/14/aseguramiento-ssh-linux/#more-1319
 +==== Trucos ====
 +  * http://www.openredes.com/2011/09/23/los-25-mejores-comandos-trucos-ssh/
 +  * http://inteligenciaux.wordpress.com/2010/05/26/redhat-enjaular-usuarios-ssh/
 +
 +==== Instalación de un servidor SSH =====
 +<code>yum install openssh-server</code>
 +=== Configuración ===
 +El fichero de configuración está en /etc/ssh/sshd_config 
 +
 +Es recomendable hacer los siguientes cambios:
 +  * Cambiar el puerto 22 por otro->   Port 22022
 +  * Usar sólo la versión 2 del protocolo-> Protocol 2
 +  * Denegar iniciar la sesión como root ->  PermitRootLogion no
 +  * Definir la interfaz por la que vamos a escuchar (en caso de tener varias) -> ListenAddress 192.168.1.10
 +
 +
 +
 ===== Uso del SSH ===== ===== Uso del SSH =====
 la forma de conectar por ssh es <code>ssh ctausuario@ip_destino</code> la forma de conectar por ssh es <code>ssh ctausuario@ip_destino</code>
Línea 15: Línea 49:
   * AllowUsers: podemos indicar que usuarios si pueden conetarse por ssh e incluso indicar desde que ip se permite. Basta poner el nombre del usuario o con usuario@ip    * AllowUsers: podemos indicar que usuarios si pueden conetarse por ssh e incluso indicar desde que ip se permite. Basta poner el nombre del usuario o con usuario@ip 
   * MAxAuthTries: Número máximo de intentos para hacer login   * MAxAuthTries: Número máximo de intentos para hacer login
-  * MaxStartups: Número máximo de usuarios connctados simultaneamente +  * MaxStartups: Número máximo de usuarios conectados simultaneamente 
-  ==== Desactivar el login del root por ssh ===+ ==== Desactivar el login del root por ssh ===
  
 ===== Proxy Socks con SSH ===== ===== Proxy Socks con SSH =====
Línea 70: Línea 104:
 En caso de querer ejecutar un navegador por este método, es recomendable usar epiphany, pues es mucho más liviano que otros.  En caso de querer ejecutar un navegador por este método, es recomendable usar epiphany, pues es mucho más liviano que otros. 
  
-===== SSH Transparente ===== +===== SSH sin pedir contraseña ===== 
- +Para validarte en otra máquina por ssh sin que te pida la contraseña, necesitamos crear una clave que copiaremos a la máquina destino para validarnos. 
-¿Cómo hacer que el ssh te valide sin pedirte las contraseñas (con la clave pública y la privada)? +<note>Las dos máquina necesitan tener instalada una versión de  openssh</note> 
- +Para conectarnos haríamos lo siguiente: 
-    * Asegurarse de que se tiene en ambas máquinas (maq1 y maq2) una versión de openssh actualizada y de que es la misma versión. (No tiene porque ser obligatorio en versiones recientes). +  En la máquina origen hacemos <sxh>ssh-keygen -t rsa -b 2048 
-    * Si queremos que el usuario pepe se conecte a la maq2 desde la maq1 con un 'ssh maq2' hacer lo siguiente: +Generating public/private rsa key pair. 
-      Desde maq1 pepe hacer: <code>ssh-keygen -t rsa</code> . +Enter file in which to save the key (/home/username/.ssh/id_rsa):  
 +Enter passphrase (empty for no passphrase):  
 +Enter same passphrase again:  
 +Your identification has been saved in /home/username/.ssh/id_rsa. 
 +Your public key has been saved in /home/username/.ssh/id_rsa.pub.ssh-keygen -t rsa</sxh> . 
 <note>Dejar el nombre fichero que dice y no poner passphrase.</note> <note>Dejar el nombre fichero que dice y no poner passphrase.</note>
-Se habrán generado dos ficheros fichero1.pub y fichero2.rsa con la clave privada y la pública en maq1, más concretamente en el subdirectorio /home/pepe/.ssh/ . Necesitamos copiar el contenido del primer fichero1.pub al otro ordenador, específicamente al archivo authorized_keys dentro de ~/.ssh/ +  * Copiamos las claves a la máquina destino <sxh> ssh-copy-id usuario@ipdestino 
 +id@server's password: </sxh>
  
-Por tanto o añadimos al fichero /home/pepe/.ssh/authorized_keys en maq2 la línea que contiene la clave pública de maq1 (fichero .pub), o bien lo creamos  si no existe.  + * Si no funciona, en /etc/ssh/sshd_config debería estar descomentado y activado: RSAAuthentication yes y PubkeyAuthentication yes. 
-<note>OJO , si la cortamos y pegamos, tener cuidado que este en una sola linea!!</note> +
-      * Asegurarse que el directorio .ssh de la maquina destino tenga como permisos drwx------. Es decir, todos los permisos solo para ese usuario, sino esto no funciona!!! +
-      * Probar y hacer desde maq1 ssh maq2.  +
-   * Esta configuración es para generación de claves tipo rsa de nivel 2. Las hay rsa de nivel 1 y dsa. La configuración para ambas es diferente. Para enterarse bien hacer un man ssh y man ssh-keygen. +
-    * Si no funciona, en /etc/ssh/sshd_config debería estar descomentado y activado: RSAAuthentication yes y PubkeyAuthentication yes. +
  
 <code>ssh usuario@maquina <code>ssh usuario@maquina
Línea 105: Línea 139:
  
 ==== Copiar ficheros ==== ==== Copiar ficheros ====
-<code> scp ruta/archivo cuenta_en_ordenador_presente@ip_ordenador_presenteruta/fichero</code> +=== Desde local a remoto === 
 +<sxh> scp fichero_origen usuario_remoto@ip_ordenador_remoto:fichero_destino</sxh> 
 +=== Desde servidor remoto a local === 
 +<sxh>scp usuario_remoto@ip_ordenador_remoto:/fichero_origen fichero_destino</sxh>
  
 +<note>Para copiar carpetas completas, sólo hace falta agregar el parámetro **-r** </note>
  
  
Línea 121: Línea 158:
   * http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/   * http://www.vicente-navarro.com/blog/2009/05/24/creando-tuneles-tcpip-port-forwarding-con-ssh-los-8-escenarios-posibles-usando-openssh/
   * http://terminus.ignaciocano.com/k/2011/08/12/utilizar-ssh-para-establecer-un-servidor-proxy-socks/   * http://terminus.ignaciocano.com/k/2011/08/12/utilizar-ssh-para-establecer-un-servidor-proxy-socks/
 +  * http://hpantaleev.wordpress.com/2012/02/14/openssh-sftp-chroot-con-chrootdirectory/
 +  * http://bootlog.org/blog/linux/tip-ssh-scp-y-un-as-bajo-la-manga
 +  * http://www.alcancelibre.org/staticpages/index.php/como-ssh-clave-publica
 +  * http://es.softuses.com/28144
 +  * http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/
 +  * http://ubuntulife.wordpress.com/2011/02/16/script-mejorando-la-productividad-automatizando-conexiones-ssh-mediante-expect/
 +  * http://ubuntulife.wordpress.com/2010/08/03/sencillo-script-en-bash-para-ejecutar-un-comando-remoto-mediante-ssh/
 +  * http://www.alcancelibre.org/staticpages/index.php/como-ssh-clave-publica