ssh jumphost não transparente

0

Isso parece básico, mas não consigo encontrar uma solução que satisfaça completamente.

Cliente ssh --- > Servidor A ssh ---- > Servidor B

É claro que é fácil fazer isso digitando comandos enquanto você faz o login primeiro A e depois B. Mas eu tenho requisitos específicos para o Servidor A:

  • Automaticamente ssh para o servidor B (login sem senha já ativado)
  • Efetuar logout automaticamente também do servidor A quando a sessão no servidor B termina
  • Faça um registro (arquivo de texto) da sessão. Não há necessidade de cobrir nesta resposta, pois há muitas instruções para isso.
  • Simplesmente, o usuário não deve ter permissão para fazer nada no Servidor A, em vez disso ir diretamente para o Servidor B. Mas o túnel transparente ou o jumphost não é uma opção porque precisa registrar a sessão.
por Jervel 17.05.2017 / 10:27

1 resposta

1

Só fiz isso para criar um jumphost sem precisar fazer o login duas vezes.

Em sshd_config adicione o seguinte ao serverA:

allowgroups users  
Match group users  
   ForceCommand ssh_forcecommand.sh  

ssh_forcecommand.sh

if [ -z "$SSH_ORIGINAL_COMMAND" ]; then  
  echo "usage ..."  
else  
  ssh $SSH_ORIGINAL_COMMAND  
fi  

No meu caso, eu uso o parâmetro após o host (seu servidorA) como o host de destino (seu servidorB). O cliente linux ssh não solicitará um terminal se você colocar qualquer coisa após o host, ou seja: um comando. Você terá que usar a opção -t no cliente para impor a alocação de um terminal.

ssh -t serverA serverB --- > serverA --- > serverB

    
por 16.08.2017 / 19:55