Eu não acho que sua configuração seja a mesma do one-liner, parece mais com isso:
ssh -o ProxyCommand='sshpass -p mypassword ssh -o ProxyCommand="ssh gateway -W %h:%p" h_act' myusername@myip
i.e. você tem o sshpass em execução dentro de um ProxyCommand.
Mas não acho que isso funcione, sshpass encapsula o cliente ssh em um pseudo-terminal, ocultando o fato de que a senha realmente vem de um arquivo ou algo diferente da entrada do usuário de um terminal. Para fazer isso, ele precisa ser executado antes da execução do ssh client.
Se o seu primeiro one-liner funcionar, mas você simplesmente não sentir vontade de digitar o sshpass de cada vez, você pode envolvê-lo em um shell script:
#/bin/sh
sshpass -f passwordfile ssh -o ProxyCommand="ssh gateway -W %h:%p" "$@"
Em seguida, execute algo como sshscript myusername@myip .
Como um aparte, não use sshpass -p , ele tornará a senha visível em ps output enquanto o ssh client (e sshpass ) for executado. É melhor usar sshpass -e para passar o pw pelo ambiente ou sshpass -f file para lê-lo de um arquivo.