Como usar o sshpass para conexão encadeada?

3

Eu tenho duas máquinas do cliente, $gateway e $server , a segunda só é acessível a partir da primeira. A chave pública auth está indisponível nos dois sistemas. Então, para executar alguns $command no servidor eu preciso executar ssh $gateway ssh $server $command e depois digitar duas senhas. Eu posso usar sshpass , mas ele irá manipular apenas a primeira conexão e eu ainda preciso inserir a segunda senha manualmente.

Como posso fazer com que o acesso ssh não seja interativo (sem inserir senhas manualmente) no servidor?

A única maneira que vejo é usar túneis, mas eles são difíceis de manter vivos por causa da conexão instável da internet.

    
por Equidamoid 11.06.2013 / 12:27

1 resposta

4

Tente:

ssh -oProxyCommand="ssh -W %h:%p $gateway" $server command

Por exemplo:

ssh -oProxyCommand="ssh -W %h:%p [email protected]" [email protected] command

Isso usará o proxy da conexão ssh para $server sobre outro comando ssh , sem realmente criar um encapsulamento. Isso garante que ambos os clientes ssh sejam executados localmente, usando sshpass.

    
por 11.06.2013 / 12:38