Saya telah meningkatkan dari Mac OS X Snow Leopard ke Lion . Saya menggunakan beberapa skrip dengan sshpass
tetapi setelah saya memutakhirkan ke Lion, kesalahan berikut muncul:
Permission denied, please try again. debug1: read_passphrase: can't open /dev/tty: Device not configured debug1: permanently_drop_suid: 502 ssh_askpass: exec(/usr/libexec/ssh-askpass): No such file or directory
Saya hanya dapat terhubung dengan sshpass
(atau ketikkan kata sandi secara manual). Tidak ada cara kunci publik / pribadi. Saya telah menginstal ulang MacPorts dan sshpass.
Bagaimana saya bisa dapatkan ssh-askpass ? Bagaimana saya bisa mengkonfigurasi / dev / tty ?
Salam!
/dev/tty
”Berarti menjalankan skrip dari terminal. Untuk mendapatkan prompt GUI, Anda perlussh-askpass
(dan saya tidak tahu mengapa Anda tidak lagi memilikinya).Jawaban:
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:
Anda dapat mempercepat skrip ini dengan mengurangi sleeps dan keterlambatan send_human.
sumber
Saya juga mengalami masalah serupa setelah memutakhirkan ke Mac OS X Lion. Saya menggunakan Unison untuk menyinkronkan direktori di MacBook Pro saya dengan server Linux saya, tetapi setelah upgrade saya tidak bisa terhubung lagi. Masalahnya adalah bahwa / usr / libexec / ssh-askpass tidak ada di Lion. Untuk memperbaiki ini, Anda dapat pergi ke http://westergaard.eu/2011/07/printing-on-wi-from-mac-os-x-lion/?utm_source=rss&utm_medium=rss&utm_campaign=printing-on-wi-from-mac-os -x-singa . Di sana Anda dapat mengunduh file Printer-hack.zip. Ini berisi file ssh-askpass yang dapat Anda pindahkan ke / usr / libexec /.
sumber
sshpass -p
. Itu tidak masuk akal!Cara yang tepat untuk memperbaikinya adalah dengan menghapus semua barang sshpass yang Anda instal dan hanya mengandalkan apa yang sudah disiapkan Apple untuk Anda.
Secara default, ssh-agent sudah berjalan (sebenarnya siap untuk dijalankan setelah Anda menggunakannya, melalui launchd). Anda dapat memverifikasi ini dari terminal dengan
env|grep SSH
yang harus kembali dengan sesuatu sepertiSSH_AUTH_SOCK=/tmp/launch-7D4wfP/Listeners
. Jika tidak terlihat seperti itu, maka Anda masih mengganti default di salah satu skrip startup shell Anda.Kemudian, simpan frasa sandi kunci SSH Anda di gantungan kunci bersama
ssh-add -K
. Setelah selesai, itu akan secara otomatis memuat kunci Anda ke ssh-agent Anda saat diperlukan.EDIT: Ups, saya ketinggalan bit "no pubkey auth" dan apa yang ssh-pass lakukan. Oke, coba atur variabel lingkungan SSH_ASKPASS ke skrip yang mencetak kata sandi Anda. Itu akan membuat ssh menjalankan skrip itu alih-alih ssh_askpass.
Apa yang bisa terjadi adalah bahwa Lion mungkin lebih ketat tentang TTY dan tidak akan menerima lingkungan yang disediakan oleh ssh-pass sebagai TTY nyata. Jika itu masalahnya maka ssh-pass perlu diperbaiki. Mungkin mengkompilasi ssh Anda sendiri mungkin berhasil juga.
sumber
OK, saya juga menghadapi masalah yang sama dengan AIX ini. Skenario itu tidak menentu, kadang-kadang perintah akan mengeksekusi dan kadang-kadang akan melempar
/dev/tty
kesalahan.Saya mengatasinya dengan melakukan hal berikut: Saya ekspor
SSH_ASKPASS
ke skrip shell yang akan mengulang kata sandi. dan kemudian jalankan./sshpass -p $password $user@$node hostname
. Pada melakukan ini, kasus-kasus yang ssh mengeluh/dev/tty
itu menumbuhkan$SSH_ASKPASS
dan mendapatkan kata sandi.Semoga ini bermanfaat. Saya tergoda untuk berpikir bahwa ini lebih merupakan bug sshpass, tetapi tentu saja tidak lebih.
Tepuk tangan Suriyan
sumber