Eu acho que na sua configuração o sshpass
no ProxyCommand tenta dar a senha para a conexão SSH indo para bastion
, não para a que vai finalmente para o switch. Colocar o sshpass
fora o ssh
ProxyCommand externo parece funcionar:
laptop$ export SSHPASS=sshhhh
laptop$ sshpass -e ssh -o'Proxycommand ssh customer@bastion -W final.target.switch:22' blah@blah
Como sshpass
coloca o cliente SSH em um tty separado para enganá-lo e aceitar a senha de si mesmo, parece que sshpass
deve ser executado antes do cliente SSH. Portanto, ter ssh
run sshpass
de ssh/config
provavelmente não funcionará.
Mas deve ser possível fazer um script para executar sshpass
e ssh
com as opções necessárias. Isso funciona para mim, com a configuração necessária definida em ~/.ssh/config
, como você tinha:
#/bin/bash
if [ -z "$1" ] ; then echo "usage: $0 <args...>" ; exit 1 ; fi
sshpass -e ssh "$@"
Você também pode definir o usuário para efetuar login em .ssh/config
, por isso pode ser capaz de fazer sem -l
. Além disso, parece que sshpass
não lida bem com ssh
perguntando sobre chaves de host desconhecidas, portanto, pode ser necessário configurar known_hosts
(ou usar StrictHostKeyChecking no
).