Eu tenho duas máquinas de cliente $gateway
e $server
, a segunda só é acessível a partir da primeira. A autenticação de chave pública não está disponível nos dois sistemas. Portanto, para executar alguns $command
no servidor, preciso executar ssh $gateway ssh $server $command
e digitar duas senhas. Posso usar sshpass
, mas ele manipulará apenas a primeira conexão e ainda preciso digitar a segunda senha manualmente.
Como posso tornar o acesso ssh completamente não interativo (sem inserir manualmente as senhas) ao 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 à Internet.
networking
ssh
Equidamóide
fonte
fonte
Respostas:
Experimentar:
Por exemplo:
Isso usará o proxy da conexão ssh para
$server
sobre outrossh
comando, sem realmente criar um túnel. Isso garante que os dois clientes ssh sejam executados localmente, usando o sshpass.fonte
sshpass
um só precisa substituirssh
comsshpass -p <corresponding_password> ssh
)ssh $gateway rsync $file $server:
. Alguma idéia de como fazê-lo funcionar?man rsync
.$gateway
. Conexãolocalhost
<->$gateway
é terrivelmente lento, então 'baixar o arquivo para o meu laptop e, em seguida, colocá-lo para o servidor' não é uma opçãosshpass -p $password $gateway rsync -e "sshpass -p $password" $file $server:
?