sftp y llaves

148 views
Skip to first unread message

Juan Luis Gonzalez Prieto

unread,
Oct 10, 2007, 2:57:19 PM10/10/07
to Linux IPN, linux-...@linuxpuebla.org, g...@glo.org.mx
Buenas Tardes foro, serian tan amables de ayudarme con el siguiente problema, resulta que para mis pruebas instale un servidor con fedora, y utilizando scponly cree un usuario que esta restringido a su directorio home y solo puede hacer sftp, hasta ahi todo esta trabajando ok., pero resulta que me piden que la autentificacion no sea por medio de password, si no de llaves, ya utilice varias opciones que encontre en internet, pero ninguna me funciona.

He utilizado la siguiente guia :

Desde Cliente Linux :

Generamos el par de llaves ( -t de tipo rsa )

ssh-keygen -t rsa

Con esto generamos las llaves y ciframos la privada con una password, si no lo hemos puesto ,
podemos cifrarla después con ( o para cambiar la frase anteriormente definida ) :

ssh-keygen -p -f llave

En el servidor las llaves se almacenan en el home de cada usuario que pueda acceder remotamente,
en el archivo ~/.ssh/authorized_keys Este archivo alberga las llaves públicas. Por lo tanto lo que
tenemos que hacer ahora es enviar la llave pública al servidor. Una forma rápida de hacer esto, si
ya tenemos acceso en el servidor es hacer lo siguiente con ssh:

# cat ~/.ssh/id_rsa.pub | ssh servidor_remoto -p puerto -l nombredeusuario 'cat - >> .ssh/authorized_keys'

Agrega el contenido de id_rsa.pub al final del archivo authorized_keys en el equipo remoto,
otra alternativa es usar scp ( secure copy ) o winscp :

scp ~/.ssh/nombre_llave_publica.pub usuario@servidor

Una vez finalizada la parte del “cliente” , vayamos a configurar el servidor :

Fichero /etc/ssh/sshd_config :

#$OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $

# This is the sshd server system-wide configuration file. See
#...
Port 2201
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin no
PubkeyAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
X11Forwarding yes
Banner /etc/ssh-motd # siempre queda bien meter un ascii chulo ;)
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
GatewayPorts no
AllowTcpForwarding yes
KeepAlive yes
IgnoreRhosts yes
IgnoreUserKnownHosts no
PrintMotd yes
StrictModes no
RSAAuthentication yes # Autenticación RSA
AllowUsers usuario1,usuario2 # los uruarios que se conectaran por ssh
PasswordAuthentication no # solo permito login con llave
LoginGraceTime 10 # 10 segundos y pa fuera
ListenAddress 192.168.1.2 # mi direccion eth0

Pero al hacer pruebas de conexion, inmediatamente me manda el mensaje de error de Conection Closed, si fueran tan amables de ayudarme se los agradeceria, o en su caso si me pudieran decir donde encontrar un buen manual de igual forma se los agradeceria.


GRACIAS.


Juan Luis Gonzalez Prieto.
Telecomunicaciones de México
C.T.O. Módulo II P.A.
Tel. 50901100 ext. 5055
jlg_p...@linuxmail.org


=
golf
See the VW Golf, now the Rabbit. Check out Our Features & Models.
http://a8-asy.a8ww.net/a8-ads/adftrclick?redirectid=791db125b91064f68512b44f4aa29059


--
Powered by Outblaze

Jose Manuel Lara Bauche Alcalde

unread,
Oct 11, 2007, 2:08:15 AM10/11/07
to linu...@googlegroups.com

Hola Juan Luis.

Verifica estos puntos:

* Los archivos dentro de ~/.ssh (en cliente y en servidor) se puedan
leer sólo por el dueño (modo 600)

* El nombre de usuario local y remoto son el mismo; si no es así, se
debe pasar el nombre de usuario remoto con el parámetro -l

* El servicio sshd esté ejecutándose en el servidor

* No haya un firewall en el servidor (o en algún punto intermedio entre
servidor y cliente) que esté bloqueando el puerto 22

Si todos esos puntos están bien y sigues teniendo problemas, después de
un intento fallido de conexión busca qué mensajes ha dejado sshd en el
archivo /var/log/messages en el servidor:

grep sshd /var/log/messages | tail -n 10

y lo que se encuentre ahí puede darte una idea de qué está fallando; si
no es así, mándanos la salida al foro y/o trata de ser menos restrictivo
en la configuración del servidor para ver qué pasa. Probablemente sea
buena idea primero dejar TODAS las líneas de sshd_config comentadas y
sólo deja una línea que contenga

Host *

Si logras la conexión así, quiere decir que el problema está en la
configuración del servidor. Entonces ve descomentando poco a poco las
líneas del archivo de configuración (reiniciando cada vez el servicio)
hasta que puedas determinar exactamente cual o cuales líneas son las que
causan el problema. Una vez identificadas habrá que modificarlas de tal
forma que la conexión se permita y que la seguridad no se vea
comprometida.

Saludos.
José Manuel.

Reply all
Reply to author
Forward
0 new messages