SSH proxyjump com identityfile somente no proxy

0

Eu não encontrei meu caso específico em outros tópicos.

Basicamente eu tenho meu PC (Ubuntu), um proxy (Debian) e um alvo (Debian). Eu quero fazer um proxyjump do PC para o alvo passando pelo proxy. Autenticação do proxy para o destino e do PC para o proxy usam autenticação pubkey e cada máquina tem seu próprio par de chaves.

A chave privada no PC corresponde ao pubkey do PC no proxy e eles estão no diretório padrão. Então, eu apenas corro ssh user@proxy in do PC e ele se conecta bem ao proxy. No proxy eu tenho que especificar ssh -i mypubkey user@targetserver para se conectar bem (não é a chave padrão).

Agora, no PC, não sei como executar um comando e acabar no destino, pois preciso especificar a chave privada no proxy. Eu tentei:

ssh -J user@proxy user@target
ssh -Ao ProxyCommand="ssh -W %h:%p user@proxy" user@target

Mas isso me dá erro Permissão negada (publickey).

No servidor proxy, tentei adicionar a diretiva IdentityFile em ~/.ssh/config e em /etc/ssh/ssh_config , mas aparentemente quando eu chamo o proxy do PC como host de salto, ele não assume configurações desses arquivos.

Se eu trouxer a chave privada do proxy para o PC e especificar com -i , por exemplo, ela funcionará (isso seria ssh -i mypubkey -J user@proxy user@target ). Então, minha pergunta é: é possível manter a chave privada no proxy e referenciá-la no PC para que eu não precise movê-la para o PC?

    
por Adriano_epifas 16.05.2018 / 19:32

1 resposta

0

[...] is it possible to keep the privkey in the proxy and reference it in the PC so I don´t have to move it to the PC?

Resposta curta: Não

Razão: Todas as referências de arquivo de configuração (ou linha de comando) em seu PC local são para arquivos residentes em seu dispositivo local (PC). Não é possível fazer referência a arquivos remotos (proxy) do seu PC que ssh podem acessar no momento em que ssh está tentando estabelecer a conexão.

Além disso: você provavelmente não quer armazenar a chave privada para o acesso proxy-para-alvo no proxy; se o fizesse, teria de ser uma chave sem senha, o que é sempre uma má prática de segurança. Em geral, é melhor proteger bem suas chaves privadas. No meu caso, eles só existem na minha máquina local e sempre têm boas senhas.

Solução alternativa sugerida: você já tem a configuração funcionando com a chave proxy-para-alvo em seu PC local. Ou continue com isso, ou use o ssh-agent e o encaminhamento para fornecer acesso sem senha, presumo que você queira manter. Exemplo ~/.ssh/config entradas:

Host target
    ProxyJump  user@proxy
    IdentityFile .../target-id_rsa

Host proxy
    IdentityFile .../proxy-id_rsa
    ForwardAgent yes

Provavelmente você pode sair sem as diretivas IdentityFile se souber que já carregou as chaves em seu agente local.

    
por 17.05.2018 / 18:22