Vários usuários usam script para acessar o servidor remoto via SSH sem senha

Vários usuários usam script para acessar o servidor remoto via SSH sem senha

Atualmente, estou configurando uma caixa Linux vinculada ao Active Directory. Esta caixa permitirá que os usuários façam SSH com seu nome de usuário e senha do AD para coletar informações (Caixa A). O problema é que estou tentando criar uma função em /etc/bash.bashrc, então os usuários precisam digitar "get_info", por exemplo, a função fará o SSH em uma máquina remota (Caixa B), executará um comando e gerará as informações de volta ao usuário.

O problema com isso é que eu gerei uma chave rsa na Caixa A, adicionei-a às chaves_autorizadas da Caixa B e ela funciona bem. O problema que estou enfrentando é como faço para configurar isso uma vez para os usuários atuais e qualquer novo usuário que fizer login na Caixa A.

Existe uma abordagem melhor do que a que estou fazendo atualmente. Essencialmente, eu só preciso me conectar à caixa remota, executar um comando, enviar as informações de volta ao usuário e pronto. Como posso permitir que novos usuários se conectem por meio de um script à caixa remota sem precisar gerar chaves RSA para eles?

A função get_info receberá um valor 'get_info 012345' e retornará os resultados.

Responder1

O que é preciso:

  • Chaves compartilhadas pelos usuários
  • Crie um script comum no servidor
  • Na sua configuração ssh, limite o usuário a comandos específicos:

    command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= usuário

  • Crie um script na caixa local ou em suas pastas pessoais que executa um comando ssh para o servidor remoto, executa o script no servidor e depois gera

  • Se precisar de entrada na sessão remota, você pode executar seu script local

    ./local.sh 01234

Que executa:

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

É interpretado como

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

Responder2

Em vez de mudar /etc/bash.bashrc, por que não criar um programa (talvez escrito em bash) que fique no PATH padrão para todos os usuários no host local. Este programa pode chamar ssh com uma flag para apontar para uma chave privada comum no sistema local (por exemplo, você pode colocá-la em /etc ou /etc/opt/ em algum lugar). O sistema remoto teria uma única conta que continha o arquivo de chave pública, modificado (veja as páginas de manual do ssh) para que qualquer pessoa que use a chave pública possa executar apenas um comando (ou seja, seu comando informativo).

informação relacionada