Meu layout de rede é mais ou menos assim:
Agora Alice tem acesso ao gateway SSH (apenas gateway de agora em diante) com:
ssh [email protected]
e o arquivo de chaves autorizadas no gateway se parece com isso
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
portanto, quando Alice tenta se conectar ao Gateway com sua chave privada, na verdade, ela se conecta ao servidor da Web (o pc do gateway pode fazer uma conexão ao servidor da Web com uma chave privada sem senha, para que fique transparente).
A questão
Como posso configurar isso para que Alice também possa enviar scp para o servidor da web?
Eu sei que isso faz uma conexão separada, mas existe alguma maneira de isso funcionar como um ssh normal, para que até algo assim
-R12345:localhost:22
funcione?
Eu tinha exatamente o mesmo problema, mas consegui funcionar sem mudar radicalmente tudo.
Tudo o que fiz foi adicionar $ SSH_ORIGINAL_COMMAND ao gateway allowed_keys para passar por qualquer coisa da cadeia até o servidor final.
Então, é isso:
Torna-se:
O -q é usado para suprimir a mensagem de conexão fechada da máquina do terminal, para que não termine na saída local se estiver usando o redirecionamento localmente.
Você pode usar o scp assim:
Isso tem a vantagem adicional de permitir que os usuários passem comandos através de comandos para o servidor de terminal e recuperem o resultado em sua sessão local para que possam redirecioná-los para um arquivo ou canalizá-los para um programa diferente.
Por exemplo:
Isso funciona porque parece que o sshd preenche a variável de ambiente $ SSH_ORIGINAL_COMMAND com o comando e especificado pelo cliente ssh, mas não sei por que isso milagrosamente permite que o scp passe pela máquina do terminal, bem como pelos comandos.
fonte
Infelizmente, o encaminhamento de porta não ajudaria a copiar arquivos diretamente da estação de trabalho de Alice para o servidor da Web usando
scp
. Em este post SO I explicou por ssh (e scp como ele utiliza os mesmos mecanismos de autenticação) não funcionará para conexões de porta-encaminhada usando ssh.A opção seria configurar um servidor VPN na máquina que agora atua como gateway SSH, conectar-se a ele e ter acesso direto a qualquer máquina atrás do firewall.
fonte