Primero debe presentar una queja ante la administración del servidor, observando que la autenticación de clave pública es mucho más segura que simplemente una contraseña, pero asumiré que ya lo hizo, y sus administradores son simplemente idiotas.
Lamentablemente Apple eliminó ssh-askpass cuando integraron su funcionalidad en ssh, scp y ssh-add. Sin embargo, hay un paquete SSHKeychain que proporciona un ssh-askpass con una solicitud de contraseña Cocoa similar a Apple para el paquete openssh de macports. Debería solucionar sus problemas de la forma que desee, tal vez incluso configurando la variable SSH_ASKPASS para usted.
Solo para tu información, por lo general recomiendo que no instales el paquete openssh macports porque rompe la solicitud de tu contraseña de Apple, pero una vez que hayas instalado los macports SSHKeychain, generalmente ofrece un openssh más reciente que Apple.
No hay nada de malo en incrustar contraseñas en los scripts cuando el servidor deshabilita la autenticación de clave pública, es decir, si les importaba la seguridad, deberían volver a habilitar las claves públicas. Incluso hay servidores que intencionalmente rompen sshpass. Puede acceder a dichas máquinas utilizando el siguiente script de expectativa:
#!/usr/bin/expect -f
set timeout -1
set send_human {.05 0.1 1 .07 1.5}
eval spawn $argv
match_max 100000
expect {
-re "USERNAME@(\[0-9A-Za-z_\-\.\]+)'s password: "
{ sleep 0.1 ; send -- "PASSWORD\r" ; sleep 0.3 }
}
interact
Puedes acelerar este script reduciendo los retrasos de sleeps y send_human.