Command: harus dijalankan dari terminal

9

Saya memiliki akun hosting bersama, saya login menggunakan ssh. ketika saya mengetik misalnya susaya memiliki output ini: su: must be run from a terminal

Apakah kesalahan ini relatif terhadap kenyataan bahwa saya tidak memiliki izin yang memadai atau ke hal lain?

4m1nh4j1
sumber
Biasanya saya berharap kesalahan itu menjadi indikasi tidak ada TTY yang dialokasikan untuk koneksi, tetapi itu tidak masuk akal jika Anda terhubung melalui SSH dan mendapatkan shell. Bisakah Anda membagikan langkah-langkah tepat yang Anda ambil untuk mendapatkan kesalahan itu, dimulai dengan ssh -F /dev/null user@hostdari sistem lokal Anda? ( -F /dev/nullPenyebab setiap sistem atau konfigurasi SSH lokal pengguna diabaikan). Jika Anda tidak diotorisasi untuk digunakan su, itu biasanya akan menyebabkan pesan kesalahan yang jauh lebih jelas (meskipun saya tidak mengingat kata-kata yang tepat, dan tidak memiliki mengatur sistem di mana saya dapat mencobanya).
CVn
1
Apakah mungkin ada koneksi ke securetty (5)? Dengan kata lain, apakah jumlah sesi ssh terdaftar di / etc / securetty? (prepend / dev /)
D McKeon
Anda katakan misalnya su, apakah Anda mendapatkan kesalahan ini untuk perintah lain?
ctrl-alt-delor
Apa yang ttydiperlihatkan perintah ? Apakah Anda masuk dengan ssh lalu mengetik su, atau apakah Anda menjalankan ssh su? Emulator terminal apa yang Anda gunakan? Apakah Anda seharusnya memiliki akses root?
Gilles 'SANGAT berhenti menjadi jahat'
Mencoba untuk menjawab semua pertanyaan: Saya login dengan ssh ( ssh -l login@host hostsaya bisa login, hanya ketika menggunakan perintah ini) dibandingkan jenis su(perintah lain bekerja normal), ketika saya ketik ttysaya punya: not a tty.
4m1nh4j1

Jawaban:

4

Coba -topsi untuk ssh. Jika itu tidak berhasil coba -tt.

-t Paksa alokasi pseudo-tty. Ini dapat digunakan untuk menjalankan program berbasis layar yang sewenang-wenang pada mesin jarak jauh, yang bisa sangat berguna, misalnya saat mengimplementasikan layanan menu. -tPilihan ganda memaksa alokasi tty, bahkan jika ssh tidak memiliki tty lokal.

ctrl-alt-delor
sumber
Saya mencoba ssh -tl root@host hostdan dengan t ganda, tetapi memiliki hasil yang sama. Ps: seperti yang disebutkan dalam dokumentasi, untuk masuk dengan ssh saya harus menggunakan perintah seperti ini ssh -l login@host host.
4m1nh4j1
Mengapa Anda masuk sebagai root? dan Anda tidak perlu -l.
ctrl-alt-delor
Saya menggunakan -lkarena saya menemukan bahwa tanpa menambahkannya, saya tidak dapat masuk. Saya dapat melihat ini di dokumentasi dtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System (Satu-satunya halaman yang saya temukan adalah dalam bahasa Prancis). Jika saya tidak menggunakan -lssh jangan terima kata sandi saya.
4m1nh4j1
Saya membuat akun ssh dengan " root" sebagai login, jadi saya gunakan root@hostuntuk ssh
4m1nh4j1
Login sebagai root, dianggap berbahaya: Sebagian besar orang yang khawatir dengan keamanan menonaktifkan login root. Anda dapat memperoleh hak akses root setelah Anda login (saya sarankan sudo). Jika Anda juga menonaktifkan otentikasi kata sandi, sehingga memaksa otentikasi berbasis kunci, maka Anda akan memerlukan kunci dan kata sandi untuk dapat melakukan root.
ctrl-alt-delor