Memperbaiki: sudo: tidak ada tty sekarang dan tidak ada program askpass yang ditentukan



Coba Instrumen Kami Untuk Menghilangkan Masalah

Baris keluaran yang ditentukan program no tty present dan no askpass adalah salah satu pesan kesalahan ssh yang sebenarnya tidak terlalu membantu karena tidak benar-benar sampai pada titik penyebab masalah. Kemungkinan besar, Anda benar-benar bekerja dengan TTY yang valid atau semacamnya ketika Anda melihat pesan dan Anda mungkin telah berhasil memasukkan kata sandi sudo melalui ssh dengan baik. Kemungkinan besar Anda berurusan dengan kesalahan sintaksis, tetapi pesan tersebut tidak secara langsung membahas fakta ini.



Karena ini adalah masalah yang terkait dengan ssh itu sendiri, kemungkinan besar Anda akan dapat mereproduksi masalah tersebut di Linux, FreeBSD, macOS, dan layanan Unix Cygwin di Microsoft Windows. Untungnya, perbaikannya hampir sama di semua platform ini.



Metode 1: Menemukan Terminal untuk ssh

Meskipun Anda kemungkinan besar sudah bekerja dari terminal, ssh mungkin tidak menyadarinya. Mungkin masih mencoba mencari emulator terminal TTY meskipun Anda berada di dalam jendela prompt perintah. Cobalah mereproduksi kesalahan untuk mengujinya. Kami mengonfigurasi mesin virtual untuk dijadikan contoh dan menjalankan ssh user@linuxtest.example ‘sudo /var/mail/startup.sh’ sebagai ujian. Biasanya, Anda ingin mengubah baris perintah dan ssh menjadi sesuatu yang cocok dengan apa yang Anda coba lakukan.



Anda pasti ingin memastikan bahwa Anda masuk ke server seperti yang Anda duga. Terlepas dari itu, periksa untuk melihat apakah Anda masih menerima pesan kesalahan sudo: no tty present dan no askpass program. Kemungkinan besar, jika Anda masih menerimanya maka Anda akan melihatnya tiga kali dan bahkan mungkin diminta untuk memasukkan kata sandi seperti yang Anda lakukan jika Anda menjalankan sudo secara lokal di Debian atau Ubuntu.

Coba tambahkan -t setelah ssh untuk memperbaiki kesalahan sintaks Anda. Sembilan dari sepuluh ini akan memaksa ssh mengalokasikan TTY virtual ke dirinya sendiri dan berpura-pura bahwa itu kebetulan berjalan di dalam terminal nyata. Anda tidak perlu mengubah apa pun tentang perintah Anda. Cukup tambahkan opsi -t setelah huruf ssh dan kemudian pertahankan host dan perintah yang diberikan tetap sama. Anda juga ingin mengingat hal ini jika Anda harus menjalankan ssh di bagian akhir perintah Anda.



Misalnya, jika Anda mendapatkan jenis kesalahan yang sama saat menjalankan perintah yang diformat sebagai ssh -t pengguna@linuxtest.example ‘ssh user@linuxtest2.example’ Anda harus menyimpan opsi -t setelah ssh pertama untuk mencegahnya. Perhatikan bahwa jika Anda kemudian mengubah perintah kedua untuk menghasilkan atau menggunakan data, maka Anda tidak ingin menggunakan -t sama sekali. Misalnya, jika Anda mulai menjalankan cat alih-alih skrip, Anda dapat membuang -t karena Anda tidak perlu mengalokasikan terminal untuk itu.

Metode 2: Menambal File Visudo

Anda mungkin juga mengalami masalah konfigurasi yang menghasilkan kesalahan ini. Ubah file visudo dengan mengeluarkan sudo visudo perintah, dan perlu diingat bahwa Anda tidak akan pernah ingin mengedit file ini dengan cara lain. Anda harus menemukan baris yang menampilkan ALL = NOPASSWD di dalamnya diikuti dengan jenis perintah yang tidak Anda perlukan untuk memasukkan sandi administrator untuk menjalankan.

Setiap perintah individu harus diakhiri dengan koma kecuali yang terakhir di baris. Jadi jika Anda memiliki sesuatu yang membaca seperti / sbin / poweroff / sbin / start / sbin / stop itu akan memperlakukan ini semua sebagai satu perintah dan melemparkan kesalahan pada Anda. Demikian pula, jika Anda melewatkan perintah yang Anda coba jalankan melalui ssh, Anda juga akan mendapatkan kesalahan ini. Lakukan penyesuaian yang diperlukan dan simpan file sebelum memeriksa apakah kesalahan masih dapat direkonstruksi.

Jika Anda masih mengalami kesalahan bahkan setelah melakukannya dan memulai ulang layanan, coba mengikuti perintah pada gambar di bawah ini dan pastikan bahwa baris PermitTTY menampilkan kata ya setelahnya. Jika ini adalah baris terakhir dalam file Anda, pastikan ada baris baru yang kosong sesudahnya. GNU nano melakukan tugas ini secara otomatis secara default.

Anda perlu memulai ulang layanan yang relevan sebelum mencoba mereproduksi pesan kesalahan lagi.

3 menit membaca