Después de cuatro años, esta respuesta merecía una actualización. Si bien originalmente lo usé authorized_keys
yo mismo y probablemente aún lo usaría en algunos casos seleccionados, también puede usar el sshd_config
archivo de configuración del servidor central .
sshd_config
Puede designar (por su caso de uso particular) un grupo, como por ejemplo proxy-only
o Match
usuarios 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 man
pá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 Match
bloqueo comenzaría así:
Match group proxy-only
Puede Match
los siguientes criterios: User
, Group
, Host
, LocalAddress
, LocalPort
y Address
. Para hacer coincidir varios criterios, simplemente separe por coma los pares de criterios-patrones ( group proxy-only
arriba).
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_keys
archivo para los miembros de ese grupo.
La no-pty
configuración de authorized_keys
sería reflejada por una PermitTTY no
configuració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 %h
es un token que se sustituye por el directorio de inicio del usuario ( %u
daría el nombre de usuario y %%
un signo de porcentaje). He encontrado ChrootDirectory
particularmente útil para limitar a mis sftp-only
usuarios:
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 Match
bloque. Consulte la man
pá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 sshd
versió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-pty
solo 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