Restricción de SSHd por usuario

9

Necesito restringir ciertos usuarios para que solo puedan usar SSH con las teclas ssh y otros usuarios puedan iniciar sesión con una clave o contraseña.

un ejemplo:

Me gustaría que el usuario root pueda iniciar sesión de forma remota (a través de sshd) utilizando la clave, por lo que no se aceptará ninguna contraseña (incluso si la contraseña es correcta)

y para otros usuarios (todos en el sistema) pueden iniciar sesión con clave y / o contraseña

¿Como podría hacerlo?

alexus
fuente

Respuestas:

0

Lo que haría es establecer de /etc/sshd/sshd_configmanera que:

PermitRootLogin without-password

solo para mayor seguridad y para evitar tener la contraseña de root bloqueada (solo permitiría que root inicie sesión con una clave)

En cambio, usaría en AllowGroupslugar de AllowUser, ya que para mí sería más conveniente agregar usuarios a un grupo en lugar de hacerlo, sshd_configpero eso podría depender de sus preferencias personales.

Golán
fuente
13

Creo que lo que quieres es "Match User". Lo usa para hacer coincidir un nombre de usuario, luego sangra una serie de configuraciones de configuración que se aplican específicamente a ese usuario.

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Utilizo esto para configurar el acceso chroot solo SFTP a veces para clientes.

Devin Ceartas
fuente
Tenga en cuenta que no todas las configuraciones se pueden escribir en el Matchbloque. Ver man 5 sshd_configpara el detalle.
ynn
2

Configure ssh de la siguiente manera:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

Reiniciar SSH

Luego proporcione las claves a aquellos a quienes le gustaría evitar usar contraseñas.

ssh-keygen se utiliza para generar ese par de claves para usted. Aquí hay una sesión donde se crea su propio par de claves privadas / públicas:

#ssh-keygen -t rsa

El comando ssh-keygen -t rsa inició la creación del par de claves.

No ingresé una frase de contraseña para mi configuración (en su lugar se presionó la tecla Enter).

La clave privada se guardó en .ssh / id_rsa. Este archivo es de solo lectura y solo para usted. Nadie más debe ver el contenido de ese archivo, ya que se utiliza para descifrar toda la correspondencia cifrada con la clave pública.

La clave pública se guarda en .ssh / id_rsa.pub.

Su contenido se copia en el archivo .ssh / Authorized_keys del sistema al que desea enviar SSH sin que se le solicite una contraseña.

#scp id_rsa.pub remote system:~/.ssh/authorized_keys

Finalmente, bloquee la cuenta (la autenticación de clave seguirá siendo posible).

# passwd -l username1
Patrick R
fuente
eso no es lo que estoy buscando. Digamos que yo quiero raíz que estar conectado utilizando sólo las llaves y otros usuarios pueden iniciar sesión con clave o contraseña
alexus
entonces no bloquee la cuenta con passwd -l username1
Patrick R