Varios usuarios utilizan script para acceder al servidor remoto a través de SSH sin contraseña

Varios usuarios utilizan script para acceder al servidor remoto a través de SSH sin contraseña

Actualmente estoy configurando un sistema Linux vinculado a Active Directory. Este cuadro permitirá a los usuarios ingresar mediante SSH con su nombre de usuario y contraseña de AD para recopilar información (Cuadro A). El problema es que estoy intentando crear una función en /etc/bash.bashrc, por lo que los usuarios deben escribir "get_info", por ejemplo, la función SSH en una máquina remota (Cuadro B), ejecutará un comando y generará la información. de vuelta al usuario.

El problema con esto es que generé una clave rsa en el Cuadro A, la agregué a las claves_autorizadas del Cuadro B y funciona bien. El problema con el que me encuentro es cómo configuro esto una vez para los usuarios actuales y cualquier usuario nuevo que inicie sesión en el Cuadro A.

¿Existe un enfoque mejor que el que estoy haciendo actualmente? Básicamente, solo necesito conectarme a la caja remota, ejecutar un comando, enviar la información al usuario y listo. ¿Cómo puedo permitir que nuevos usuarios se conecten mediante un script al cuadro remoto sin tener que generar claves RSA para ellos?

La función get_info recibirá un valor 'get_info 012345' y devolverá los resultados.

Respuesta1

Qué se necesita:

  • Claves compartidas por usuarios
  • Crear script común en el servidor
  • En su configuración ssh, limite al usuario a comandos particulares:

    comando="/bin/myscript.sh",sin-reenvío-de-puerto, sin-reenvío-X11, sin-reenvío-de-agente, sin-pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= usuario

  • Cree un script en el cuadro local o en sus carpetas de inicio que ejecute un comando ssh en el servidor remoto, ejecute el script en el servidor y luego genere

  • Si necesita información sobre la sesión remota, puede ejecutar su script local

    ./local.sh 01234

Que ejecuta:

ssh user@remote '/bin/myscript.sh $1'

Se interpreta como

ssh user@remote '/bin/myscript.sh 01234

Respuesta2

En lugar de cambiar /etc/bash.bashrc, ¿por qué no crear un programa (tal vez escrito en bash) que se encuentre en la RUTA estándar para todos los usuarios en el host local? Este programa puede llamar a ssh con una bandera para apuntar a una clave privada común en el sistema local (por ejemplo, podría colocarla en /etc o /etc/opt/ en algún lugar). El sistema remoto tendría una única cuenta que contenía el archivo de clave pública, modificado (consulte las páginas del manual de ssh) para que cualquiera que use la clave pública sólo pueda ejecutar un comando (es decir, su comando informativo).

información relacionada