
Me conecto a un servidor que no controlo a través de SSH.
Utilizo acceso con clave pública y no necesito poder conectarme con una contraseña interactiva con el teclado.
Me gustaría deshabilitar el acceso interactivo con el teclado a mi usuario para que otros no puedan hackear de esta manera.
Dado que no controlo el servidor, ¿hay alguna manera de configurar el archivo de configuración de mi usuario para evitar el acceso interactivo con el teclado?
Respuesta1
Si no tienes absolutamente ningún control sobre el servidor, no veo una manera de hacerlo, ya que no controlas la configuración del servidor, que es donde debería estar.
Lo que tendrías que hacer es agregar esto al archivo /etc/ssh/sshd_config:
PasswordAuthentication no
Ahora, esto deshabilitaría efectivamente la autenticación de contraseña paratodousuarios, lo que puede ser indeseable. Lo que podría hacer entonces es poner esta directiva de configuración en un bloque Match, para que solo se aplique a su usuario, en el mismo archivo de configuración:
Match user yourusername
PasswordAuthentication no
Si pudiera conseguir que el administrador del servidor hiciera esto por usted, podría ser el camino a seguir.
Otra forma es establecer una contraseña realmente larga, aleatoria y complicada para su usuario, de esa manera estará razonablemente protegido contra intentos aleatorios de entrada forzada por fuerza bruta. Es probable que la mayoría de los atacantes utilicen alguna técnica basada en diccionarios, por lo que, siempre que su contraseña sea lo suficientemente larga y aleatoria, debería ser bastante segura.
Consulte "man sshd_config" para obtener más detalles. Además, se sugirió la solución que propongo.aquí.
Respuesta2
Sólo necesitas editar esta línea del archivo /etc/ssh/sshd_config
de yes
a no
:
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
Respuesta3
[Supongo que estás usando BASH como shell de inicio de sesión. Si no, ajuste adecuadamente...]
En ~/.ssh/authorized_keys
, anteponga una especificación de comando a cada línea como esta:
command="ssh_key=XXX /bin/bash -l" ssh-dss AAAA...K3E= me@mymachine
En ~/.bash-profile
, coloca la siguiente trampa en la parte superior:
if [ "${ssh_key}" != "XXX" ]; then
echo "${SSH_CLIENT}" | mailx -s "password login attempt!" me@mailservice
exit
fi
Ahora solo recibirás un correo cuando alguien use una contraseña para ingresar a tu cuenta.