No momento, estou trabalhando em casa e preciso me conectar a um servidor de produção. A política de segurança em funcionamento não permite que clientes VPN se conectem a instâncias de produção. Dessa forma, imaginei que poderia configurar o encaminhamento do agente através do servidor de desenvolvimento (que posso acessar), pois isso é permitido.
Para fazer isso, primeiro habilitei o encaminhamento de agente para o servidor dev:
- Eu adicionei
ForwardAgent yes
para~/.ssh/config
a entrada do servidor de desenvolvimento no meu computador - Corri
eval 'ssh-agent'
para iniciar o agente ssh - Adicionei minha chave ssh ao agente usando
ssh-add ~/.ssh/id_rsa
- Eu me conectei ao servidor dev usando
ssh -A <devserver>
- No servidor de desenvolvimento, tentei me conectar ao servidor de produção usando
ssh -T me@<prodserver>
Depois disso, consegui executar comandos no servidor de produção. No entanto, nunca vejo o prompt bash real.
Existe algo que eu possa fazer para garantir que o prompt apareça?
Na última etapa, execute
ssh
sem a-T
opção:O uso da
-T
opção na verdade desativa a alocação de um TTY, o que, por sua vez, faz com que você não obtenha um shell.Você não está recebendo um prompt porque usar a
-T
opção disse ao ssh para desabilitar o modo terminal (alocação tty).A presença de um tty é como todos os programas determinam se estão sendo executados interativamente (ou seja, anexados ao terminal/teclado) ou se estão recebendo comandos de um arquivo ou pipe. No último caso, ou seja, no modo "lote", é normal que os shells desativem todos os prompts; ferramentas como 'ls' perdem sua formatação sofisticada e saída colorida; e assim por diante.