Я думаю, что в вашей конфигурации sshpass
в ProxyCommand пытается дать пароль для SSH-соединения, ведущего к бастиону
, а не тому, кто наконец перейдет к выключателю. Размещение sshpass
за пределами внешнего ssh
ProxyCommand, похоже, работает:
laptop$ export SSHPASS=sshhhh
laptop$ sshpass -e ssh -o'Proxycommand ssh customer@bastion -W final.target.switch:22' blah@blah
Поскольку sshpass
помещает SSH-клиент в отдельный tty, чтобы обмануть его. принимая пароль от самого себя, может показаться, что sshpass
должен быть запущен перед клиентом SSH. Таким образом, если ssh
запустить sshpass
из ssh / config
, скорее всего, это не сработает.
Но можно сделать сценарий для запуска sshpass
и ssh
с любыми необходимыми параметрами. Это работает для меня с необходимой конфигурацией, установленной в ~ / .ssh / config
, как и у вас:
#/bin/bash
if [ -z "$1" ] ; then echo "usage: $0 <args...>" ; exit 1 ; fi
sshpass -e ssh "$@"
Вы можете настроить пользователя для входа в систему в .ssh / config
тоже может обойтись без -l
. Кроме того, похоже, что sshpass
плохо справляется с ssh
, запрашивающим неизвестные ключи хоста, поэтому заранее установите known_hosts
(или используя StrictHostKeyChecking no
) может быть необходимо.