Saya mencoba menyambungkan ke mesin satu dengan ssh lalu menyambungkan ke mesin dua yang lain dengan ssh, tetapi saya mendapatkan kesalahan ini.
ssh [email protected] 'ssh [email protected]'
stdin: is not a tty
Mengapa?
Jawaban yang Diterima:
Secara default, saat Anda menjalankan perintah pada mesin jarak jauh menggunakan ssh, TTY tidak dialokasikan untuk sesi jarak jauh. Ini memungkinkan Anda mentransfer data biner, dll. tanpa harus berurusan dengan kebiasaan TTY. Ini adalah lingkungan yang disediakan untuk perintah yang dijalankan di computerone
.
Namun, ketika Anda menjalankan ssh tanpa perintah jarak jauh, itu TIDAK mengalokasikan TTY, karena Anda mungkin menjalankan sesi shell. Ini diharapkan oleh ssh [email protected]
perintah, tetapi karena penjelasan sebelumnya, tidak ada TTY yang tersedia untuk perintah itu.
Jika Anda ingin shell di computertwo
, gunakan ini sebagai gantinya, yang akan memaksa alokasi TTY selama eksekusi jarak jauh:
ssh -t [email protected] 'ssh [email protected]'
Ini biasanya sesuai ketika Anda akhirnya menjalankan shell atau proses interaktif lainnya di akhir rantai ssh. Jika Anda akan mentransfer data, tidak perlu dan tidak perlu menambahkan -t
, tetapi kemudian setiap perintah ssh akan berisi perintah penghasil atau konsumsi data, seperti:
ssh [email protected] 'ssh [email protected] "cat /boot/vmlinuz"'