Dovresti prima presentare un reclamo all'amministrazione del server, osservando che l'autenticazione della chiave pubblica è molto più sicura della semplice password, ma suppongo che tu l'abbia già fatto, e che i tuoi amministratori siano semplicemente idioti.
Apple ha rimosso tristemente ssh-askpass quando ha integrato la sua funzionalità in ssh, scp e ssh-add. Esiste comunque un pacchetto SSHKeychain che fornisce un ssh-askpass con una richiesta di password Cocoa simile a Apple per il pacchetto openssh di Macports. Dovrebbe risolvere i tuoi problemi nel modo desiderato, forse anche impostando la variabile SSH_ASKPASS per te.
Solo fyi, di solito mi raccomando di non installare il pacchetto openssh macports perché interrompe il prompt della password di Apple, ma una volta installato SSHKeychain macports di solito offre un openssh più recente di Apple.
Non c'è nulla di sbagliato imho con l'incorporamento delle password negli script quando il server disabilita l'autenticazione della chiave pubblica, ad esempio se si preoccupano della sicurezza, dovrebbero riattivare le chiavi pubbliche. Esistono persino server che interrompono intenzionalmente sshpass. È possibile accedere a tali macchine utilizzando il seguente script previsto:
#!/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
Puoi velocizzare questo script riducendo i tempi di sonno e i ritardi send_human.