Después de cuatro años, esta respuesta merecía una actualización. Si bien originalmente lo usé authorized_keysyo mismo y probablemente aún lo usaría en algunos casos seleccionados, también puede usar el sshd_configarchivo de configuración del servidor central .
sshd_config
Puede designar (por su caso de uso particular) un grupo, como por ejemplo proxy-onlyo Matchusuarios individuales. En sshd_config. Esto se realiza después de la configuración global y revoca, repite o refina algunas de las configuraciones proporcionadas en la configuración global.
Nota: algunas de las sintaxis / directivas utilizadas sshd_config(5)están documentadas en la manpágina para ssh_config(5). En particular, asegúrese de leer la sección PATRONES de ssh_config(5).
Para un grupo, esto significa que su Matchbloqueo comenzaría así:
Match group proxy-only
Puede Matchlos siguientes criterios: User, Group, Host, LocalAddress, LocalPorty Address. Para hacer coincidir varios criterios, simplemente separe por coma los pares de criterios-patrones ( group proxy-onlyarriba).
Dentro de dicho bloque, que tradicionalmente se sangra en consecuencia por brevedad (pero no es necesario), puede declarar la configuración que desea aplicar para el grupo de usuarios sin tener que editar cada authorized_keysarchivo para los miembros de ese grupo.
La no-ptyconfiguración de authorized_keyssería reflejada por una PermitTTY noconfiguración y command="/sbin/nologin"se convertiría en ForceCommand /sbin/nologin.
Además, también puede establecer más configuraciones para satisfacer la paranoia de un administrador, como chroot-introducir al usuario en su carpeta de inicio y terminaría con algo como esto:
Match group proxy-only
PermitTTY no
ForceCommand /sbin/nologin
ChrootDirectory %h
# Optionally enable these by un-commenting the needed line
# AllowTcpForwarding no
# GatewayPorts yes
# KbdInteractiveAuthentication no
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
(compruebe usted mismo si necesita o quiere las líneas comentadas y descomente según sea necesario)
El %hes un token que se sustituye por el directorio de inicio del usuario ( %udaría el nombre de usuario y %%un signo de porcentaje). He encontrado ChrootDirectoryparticularmente útil para limitar a mis sftp-onlyusuarios:
Match group sftp-only
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication no
Tenga en cuenta que solo ciertas directivas pueden usarse en un Matchbloque. Consulte la manpágina sshd_config(5)para más detalles (buscar Match).
claves_autorizadas
NB: la parte debajo de este comentario fue mi respuesta original. Mientras tanto, pero también depende de las características de su sshdversión exacta , elegiría el método descrito anteriormente en la mayoría de los casos.
Sí, puede, tan fino como puede asignar claves públicas. Además de nologin según lo recomendado por ajdecon, sugeriría configurar lo siguiente frente a la entrada clave en authorized_keys:
no-pty ssh-rsa ...
El no pty le dice al lado del servidor que no se debe asignar un pseudo terminal para esa clave.
También puede forzar la ejecución de algo como nologin para una clave particular al anteponer esto:
command="/sbin/nologin",no-pty ssh-rsa ...
no-ptysolo no evitará que el usuario de la clave ejecute comandos. Consulte superuser.com/q/1230979/195460 .Para cualquier usuario de solo túnel, cambie su shell de inicio de sesión a / sbin / nologin. De esa forma, su usuario no podrá acceder a un shell en el servidor, pero aún podrá ejecutar la configuración de túneles ssh desde su cliente.
fuente
Sé que esta puede no ser la respuesta que estás buscando, pero ¿has considerado usar OpenVPN como alternativa?
fuente
En caso de que esté listo para renunciar a la autenticación de usuario / contraseña y usar claves para iniciar sesión, puede especificar parámetros para cada clave pública.
Los parámetros notables son:
y
y finalmente
Con esto, puede restringir al usuario de ese par de claves en particular lo que puede hacer con la sesión SSH.
Se vería así:
fuente
Recomiendo probar Tunnelier . Es muchísimo más fácil de configurar / administrar.
fuente