
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).