Quero obter a chave de host de um servidor SFTP.
Mas, eu tenho um proxy autenticado entre mim e o servidor SFTP. Eu tenho os seguintes detalhes sobre o proxy: proxy_host
, proxy_port
, proxy_user
e proxy_password
.
Como faço para usar ssh-keyscan
/ ssh
passar pelo proxy autenticado?
Tenho o openssh-client e o netcat instalados na minha VM Oracle Linux 8.
Não quero usar ferramentas como proxytunnel ou corkscrew.
Já que você mencionou proxytunnel e corkscrew, parece que é um proxy HTTP 'CONNECT'.
O OpenSSH não suporta o uso de nenhum tipo de proxy nativamente, nem HTTP CONNECT nem outro; ele depende de algum tipo de ferramenta externa (com
ProxyCommand
).Algumas
nc
implementações têm suporte a proxy HTTP integrado, por exemplo, o openbsd-netcat tem a-x
opção para isso:Se você tiver um diferente
nc
, precisará escrever um script de shell que envie manualmente a solicitação CONNECT, que se parece com:Para
Basic
autenticação, os dados são codificados em Base64proxy_user:proxy_pass
.O script pode então ficar assim:
e o script seria invocado como
ssh -o ProxyCommand="~/myscript %h %p"
.(É exatamente isso que o proxytunnel faz, então... para usar SSH através de um proxy HTTP, você inevitavelmente usará "uma ferramenta como proxytunnel ou corkscrew".)
ssh-keyscan
não suportaProxyCommand
, mas você pode obter um resultado semelhante executandossh
(com-o HostKeyAlgorithms=
) diferente e deixando-o salvar as chaves em seuknown_hosts
.