Pertama-tama Anda harus mengajukan keluhan dengan administrasi server, mengamati bahwa otentikasi kunci publik jauh lebih aman daripada sekadar kata sandi, tetapi saya akan menganggap Anda sudah melakukannya, dan admin Anda hanyalah orang bodoh.
Apple dengan sedih menghapus ssh-askpass ketika mereka mengintegrasikan fungsinya ke ssh, scp, dan ssh-add. Namun ada paket SSHKeychain yang menyediakan ssh-askpass dengan kata sandi Cocoa seperti Apple untuk paket openssh macports. Ini akan memperbaiki masalah Anda seperti yang Anda inginkan, bahkan mungkin mengatur variabel SSH_ASKPASS untuk Anda.
Hanya fyi, saya biasanya merekomendasikan untuk tidak menginstal paket macports openssh itu sendiri karena melanggar prompt kata sandi Apple Anda, tetapi begitu Anda menginstal SSHKeychain macports biasanya menawarkan openssh yang lebih baru daripada Apple.
Tidak ada yang salah dengan menanamkan kata sandi dalam skrip ketika server menonaktifkan otentikasi kunci publik, yaitu jika mereka peduli dengan keamanan, mereka harus mengaktifkan kembali kunci publik. Bahkan ada server yang sengaja memecah sshpass. Anda dapat mengakses mesin tersebut menggunakan skrip harapan berikut:
#!/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
Anda dapat mempercepat skrip ini dengan mengurangi sleeps dan keterlambatan send_human.
/dev/tty
”Berarti menjalankan skrip dari terminal. Untuk mendapatkan prompt GUI, Anda perlussh-askpass
(dan saya tidak tahu mengapa Anda tidak lagi memilikinya).