Vous êtes sur la page 1sur 4

Conectarte por SSH, SFTP o SCP sin password

Identificacin del cliente mediante clave pblica y certificados


Nota importante:
Este procedimiento sirve solo en un solo sentido en este ejemplo del usuario1 de la mquina A a la B.
No es recproco de B a A.
Al realizar el proceso de B a A se invalida de A a B.
Tampoco es vlido para todos los usuarios de A solo uno por vez.
Al realizar el proceso con un segundo usuario de A hacia B por ejemplo usuario2 de A se invalida
usuario1.
El cliente puede identificarse mediante clave pblica, sin password.
En el ejemplo siguiente la idea es que el usuario francis de la mquinaclienteasterix se conecte
por ssh a la mquinaservidorobelix (de usuario mario) sin contrasea
Para esto creamos en el cliente una clave RSA:
Veamos vamos a genera nuestras claves y los certificados:
mquina
asterix
usuario
francis
francis@asterix:~$sshkeygentrsaf~/.ssh/id_rsa

activamos ssh-agent en el cliente para que no nos pida la pass-phrase:


francis@asterix:~$eval'sshagents'
SSH_AGENT_PID=4413;exportSSH_AGENT_PID;
echoAgentpid4413;
francis@asterix:~$sshadd
Enterpassphrasefor/home/francis/.ssh/id_rsa:
Identityadded:/home/francis/.ssh/id_rsa(/home/francis/.ssh/id_rsa)

Ahora vamos a copiar la clave pblica en el servidor la otra mquina que en este ejemplo es obelix:
~/.ssh/id_rsa.pub

colocamos la passphrase
Enterpassphrasefor/home/francis/.ssh/id_rsa:
Identityadded:/home/francis/.ssh/id_rsa(/home/francis/.ssh/id_rsa)
francis@asterix:~$scpP33322~/.ssh/id_rsa.pubmario@obelix:~/.ssh/id_rsa.pub
Theauthenticityofhost'[192.168.13.30]:33322([192.168.13.30]:33322)'can'tbe

1-4

established.
ECDSAkeyfingerprintis0f:81:87:28:ee:1e:c4:59:e3:6e:89:c5:08:64:c3:7c.
Areyousureyouwanttocontinueconnecting(yes/no)?yes
Warning:Permanentlyadded'[192.168.13.30]:33322'(ECDSA)tothelistofknown
hosts.
g@192.168.13.30'spassword:
id_rsa.pub100%3930.4KB/s
00:00

eventualmente si nos deniega el acceso en forma local o remota ejecutamos en obelix ya que esta
carpeta y su contenido puede estar en propiedad de root
sudochownRmario.ssh

Luego siguiendo con nuestro proceso la aadimos en el servidor la clave id_rsa.pub (la mquina
obelix) al final del archivo authorized_keys:
~/.ssh/authorized_keys

o en forma local en la obelix o remotamente por


$sshp33322mario@obelix

Para esto nos logueamos colocando el passwd por ltima vez y ejecutamos (eventualmente tendremos
que crear el directorio .ssh en el directorio ~/ (home de mario) en la mquina obelix
mario@obelix:~$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

comprobamos que podemos iniciar una sesin SSH sin password ni pass-phrase:
Nos pedir la primera vez que coloquemos la passphrase antes utilizada y un cuadro de dialogo si
queremos que se bloquee el depsito de claves para que nos pida de nuevo la passsphrase. Ante esto
debemos elegir que lo desbloquee si tenemos iniciada sesin y no la pedir mas.
Eventualmente la versin o configuracin debemos indicarle que y/o en donde saca la clave o
certificado que podra estar en otro directorio de la siguiente manera:
sshp33322i/home/francis/.ssh/id_rsamario@obelix
francis@asterix:~$sshp33322mario@obelix
mario@obelix:~$

para salir de la sesin SSH teclearemos exit, retornando al shell de la mquina cliente:
mario@obelix:~$exit
logout
Connectiontoobelixclosed
francis@asterix:~$

2-4

Directorio de usuario encriptado


Si tenemos un directorio de usuario cifrado, SSH no puede acceder a su archivo authorized_keys
porque est dentro de su directorio personal cifrado y no estar disponible hasta despus de que se haya
autenticado.
Por lo tanto, SSH por defecto para la autenticacin de contrasea.
Para solucionar esto, cree una carpeta fuera del home de usuario:
/etc/ssh/<username>

(reemplazar "<username>" con su nombre de usuario actual.


Este directorio debe tener permisos 755 y ser propiedad del usuario.
Mover el archivo authorized_keys en ella.
El archivo authorized_keys debe tener permisos 644 y ser propiedad del usuario.
A continuacin, edite el archivo y aada:
/etc/ssh/sshd_config
AuthorizedKeysFile/etc/ssh/%u/authorized_keys

Reiniciar el servicio ssh la prxima vez que se conecte con SSH usted no debera tener que introducir la
contrasea.
Ejecutar remotamente un shutdown -h now en un script sin passwd
El sudoshutdownhnow que inevitablemente pide la contrasea de sudo.
As de sencillos son los pasos usar el comando:
sudovisudo

Buscar la linea que pone y aadir tu usuario que tendr ese privilegio la linea quedar:
#Useraliasspecification"
User_AliasUSERS=tuusuario

Ahora buscamos la lnea y aadir una lista de comandos deseada como la siguiente:
#Cmndaliasspecification"
Cmnd_AliasSHUTDOWN_CMDS=/sbin/shutdown,/sbin/reboot,/sbin/halt

Luego buscar la lnea que contiene y aadir el comando:


"%adminALL=(ALL)ALL"
SHUTDOWN_CMDS

3-4

que dejaremos al usuario ejecutar sin contrasea de la siguiente manera:


%adminALL=(ALL)ALL
USERSALL=(ALL)NOPASSWD:SHUTDOWN_CMDS

Ya no preguntar la contrasea de sudo para ese usuario.


Se puede aadir el privilegio a mas usuarios aadirlos despus de ese usuario (en el punto 2) con una
coma de la forma:
User_AliasUSERS=tuusuario,otro_usuario

Despus de esto, al poner en el script remoto


"sshtuusuario@servidorsudoshutdownhnow"

se apaga el servidor sin solicitar la contrasea de sudo y hace posible el apagado remoto.

4-4

Vous aimerez peut-être aussi