PDF de programación - ssh sustituye a rsh

Imágen de pdf ssh sustituye a rsh

ssh sustituye a rshgráfica de visualizaciones

Actualizado el 8 de Abril del 2020 (Publicado el 14 de Abril del 2017)
715 visualizaciones desde el 14 de Abril del 2017
164,9 KB
18 paginas
ssh sustituye a rsh

Después de la r viene la s

Enrique Galdú
galdu@si.uji.es

Tabla de contenidos

Introducción...........................................................................................................................3
Deshabilitar los comandos “r” ...........................................................................................3
Instalar y configurar SSH.....................................................................................................4
Comandos básicos de ssh....................................................................................................5
Métodos de autenticación ...................................................................................................8
Gestión de claves ..................................................................................................................9
Ejecución de comandos en modo no interactivo...........................................................11
Redirección de puertos ......................................................................................................13
Uso del SSH en otras aplicaciones...................................................................................14
Conclusión ...........................................................................................................................16
Bibliografía ..........................................................................................................................16

SSH (Secure SHell) es un reemplazo seguro para programas de acceso remoto y trans-
misión de archivos como telnet, rsh, rcp y ftp.
Mientras que los programas clásicos transmiten los datos en claro, SSH utiliza méto-
dos de autenticación por clave pública para establecer una conexión encriptada se-
gura entre el cliente y el servidor.
Las conexiones X11 y puertos TCP/IP también pueden ser redirigidos sobre la conex-
ión segura. Esta redirección de puertos se puede aprovechar para hacer seguras otras
aplicaciones.
Este documento se basa en OpenSSH que es la implementación del protocolo SSH
de OpenBSD. OpenSSH está disponible para muchas de las distribuciones de Linux y
UNIX.
También existen clientes de ssh para windows como Putty1 o SecureCRT2
Los ejemplos que se incluyen en este documento se corresponden con la distribución
Red Hat Linux release 9 (Shrike).

Introducción

En el uso diario de Linux es frecuente la ejecución de comandos en máquinas remo-
tas. Tradicionalmente esta necesidad se resolvía con los comandos “r” esto es: rlogin,
rsh y rcp.
Estos comandos lanzan un shell en la máquina remota y permiten al usuario ejecutar
comandos. El usuario debe usar una cuenta en la máquina remota, por lo que debe
pasar por los métodos de autenticación. Los comandos r usan la autenticación sim-
ple de usuario y contraseña, y utilizan una conexión en texto claro, por lo que estas
pueden ser interceptadas por la red.
La autenticación para los comandos “r” también se puede controlar desde algunos
archivos de configuración como son:

• /etc/hosts.equiv : a nivel de sistema, equivalencia entre usuarios de distintas

máquinas. Se puede evitar la introducción de contraseñas.

• $HOME/.rhosts: a nivel de usuario, permite el acceso a usuarios de otras máquinas

sin utilizar contraseña.

Para poder utilizar aplicaciones gráficas al usar comandos “r” se necesita usar los
comandos que controlan el acceso al servidor X. El comando xhost permite el acceso
a un host, y xauth permite dar el acceso a un usuario determinado mediante el in-
tercambio de cookies. Este es un ejemplo del comando que se ha de ejecutar para
permitir el acceso a un usuario remoto:

$xauth extract - $DISPLAY | rsh otherhost xauth merge -

Estas funcionalidades se pueden obtener de una manera sencilla mediante SSH, con
la ventaja de que utiliza criptografía de clave pública.
SSH ofrece la autenticación mediante usuario y contraseña, así como la autenticación
mediante clave pública. Los datos están encriptados en la conexión con lo que se evita
que las contraseñas o la información intercambiada pueda ser interceptada por otros
usuarios.
Así que avanzamos de la r a la s, comenzando por deshabilitar los comandos “r”.

3

ssh sustituye a rsh

Deshabilitar los comandos “r”

Los comandos “r” se controlan desde el demonio inet, para deshabilitarlos puedes
comentar sus entradas en el fichero /etc/inetd.conf. Si tu distribución utiliza
Xinetd puedes comprobar si están deshabilitados con el siguiente comando:

[root@localhost root]# chkconfig --list|grep -E "rlogin|shell|exec"

kshell: off
rexec: off
rlogin: off

En nuestro caso ya están deshabilitados. Si alguno de ellos no lo estuviera puedes
conseguirlo con el comando:

[root@localhost root]# chkconfig rlogin off

Instalar y configurar SSH

Puedes obtener el software de OpenSSH de http://www.openssh.com/3, allí encon-
trarás el fuente y versiones compiladas para diferentes sistemas operativos.
Lo mas probable es que tu distribución ya incluya este paquete. En el caso de RedHat
los paquetes básicos son:

• openssh: contiene los ficheros básicos necesarios para el servidor y clientes ssh.
• openssh-server: contiene el demonio sshd, permite a los clientes ssh establecer

conexiones seguras con el sistema.

• openssh-clients: contiene los clientes que permiten establecer conexiones con el

servidor.

necesitas tener instalado OpenSSL

Aviso

El demonio sshd
El demonio sshd es el programa que espera conexiones de red de los clientes ssh,
controla la autenticación y ejecuta el comando requerido. El puerto por defecto en el
que escucha es el 22 y su fichero de configuración es /etc/ssh/sshd_config.
Otras opciones a destacar son:

• X11Forwarding yes|no : habilitar o deshabilitar la redirección X
• PasswordAuthentication yes|no : especifica si deseamos utilizar la autenticación

básica

En esta configuración se indica también la ruta en la que encontrar las claves que
identifican nuestro servidor. Estas son la base de la autenticación mediante clave pub-
lica y los valores por defecto son:

• HostKey /etc/ssh/ssh_host_key
• HostKey /etc/ssh/ssh_host_rsa_key
• HostKey /etc/ssh/ssh_host_dsa_key

4

Estas claves generales al sistema, junto con su correspondiente clave pública, se crean
al instalar el servidor mediante el comando ssh-keygen.

ssh sustituye a rsh

Los clientes ssh
Los programas que permiten al usuario utilizar el protocolo SSH son scp,sftp y ssh.
Se
fichero
/etc/ssh/ssh_config como por ejemplo:

configurar

pueden

opciones

generales

en

el

al

sistema

• ForwardX11 yes|no : habilitar o deshabilitar la redirección X
• PasswordAuthentication yes|no : especifica si deseamos utilizar la autenticación

básica en nuestros clientes.

En él se indican las rutas para obtener las claves públicas y privadas de cada usuario:

• IdentityFile ~/.ssh/identity
• IdentityFile ~/.ssh/id_rsa
• IdentityFile ~/.ssh/id_dsa
Estas entradas indican que las claves privada y publica de cada usuario se encon-
trarán en el directorio .ssh del HOME del usuario. En este directorio se encuentra
también el fichero authorized_keys2 que controla la autenticación mediante claves,
como veremos más adelante.

Comandos básicos de ssh

SSH es un programa que permite acceder a otro ordenador a través de la red, eje-
cutar comandos en la máquina remota y mover ficheros entre dos máquinas. Provee
autenticación y comunicaciones seguras sobre canales inseguros. Es un reemplazo de
rlogin, rsh y rcp.
Vamos a ver estos usos básicos del SSH.

ssh
El comando ssh ofrece comunicación encriptada y segura entre dos sistemas sobre
una red no segura. Este comando reemplaza al telnet, rlogin, rsh.
Para iniciar una sesión en otra máquina usando ssh:

[usuario1@localhost usuario1]$ ssh usuario1@servidor.dominio.es
The authenticity of host ’servidor.dominio.es (192.168.0.2)’ can’t be established.
RSA key fingerprint is 97:4f:66:f5:96:ba:6d:b2:ef:65:35:45:18:0d:cc:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’servidor.dominio.es’ (RSA) to the list of known hosts.
usuario1@servidor.dominio.es’s password:
[usuario1@servidor.dominio.es usuario1]$

Nota: La primera vez que realizas la conexión debes aceptar la firma del otro host. De
esta manera se establece una relación de confianza que se traduce en archivar la clave
pública de este servidor en el fichero $HOME/.ssh/known_hosts.

5

ssh sustituye a rsh

La sintaxis básica del comando ssh es:

ssh user@hostname [command]

El comando es opcional. Si se especifica en lugar de obtener un shell se ejecuta el
comando en la máquina remota.
Por ejemplo podríamos hacer un ls en la máquina remota y observar su salida:

ssh usuario1@servidor.dominio.es ls

O realizar alguna operación mas elaborada como realizar una copia en local de un
directorio remoto, como en el ejemplo:

ssh usuario1@servidor.dominio.es "tar cf - /home/usuario1" |\

tar xvf -

Una de las funcionalidades que le da mayor potencia al ssh es la redirección de las
X. Si observas la variable de entorno DISPLAY observarás que tiene la forma local-
host:n.n, esta permite que al abrir cualquier aplicación gráfica su salida se redirija al
display del cliente.

[usuario1@localhost usuario1]$ ssh usuario1@servidor.dominio.es
[usuario1@servidor usuario1]$ echo $DISPLAY
localhost:11.0
[usuario1@servidor usuario1]$ xeyes&
[usuario1@servidor usuario1]$

scp
El comando scp permite copiar ficheros entre dos máquinas. Utiliza ssh para la trans-
misión de la información, por lo que ofrece la misma seguridad que el ssh. De la
misma manera utiliza los métodos de autenticación de ssh. Este comando reemplaza
al rcp, ftp.
Este es un ejemplo de uso del scp para copiar desde la máquina local a una remota:

[usuario1@localhost]scp /tmp/file usuario1@servidor.dominio.es:/tmp

También podemos copiar ficheros entre dos máquinas remotas:

[usuario1@localhost]scp usuario1@anotherhost:/tmp/file \

usuario1@servidor.dominio.es:/tmp

La sintaxis del comando es:

scp [-pqrvBC46] [-F ssh_config] [
  • Links de descarga
http://lwp-l.com/pdf2785

Comentarios de: ssh sustituye a rsh (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad