Kami memperbaikinya dengan menambahkan -n (untuk mengalihkan std dari /dev/null) dan -t (memaksa alokasi pseudo-tty)
Contoh:
ssh -t -n [email protected] command
Masalahnya memang skrip login saya, meskipun tidak ada hubungannya dengan membutuhkan terminal (saya sudah menduga itu dan mengujinya dengan -t
dan -T
pilihan). Masalahnya adalah .bashrc
saya sedang menjalankan exec
(dalam hal ini ke zsh
- karena sistem kami tidak mengizinkan chsh
ke zsh
).
Garis yang menyinggung:
test -f /usr/bin/zsh && exec /usr/bin/zsh
Diselesaikan dengan terlebih dahulu memeriksa shell interaktif dan keluar jika demikian:
[ -z "$PS1" ] && return
test -f /usr/bin/zsh && exec /usr/bin/zsh
Jadi, intinya, karena shell mengeksekusi ke zsh
, ssh
sedang menunggu ini selesai - yang tidak pernah terjadi.
Saya agak bingung kenapa .bashrc
saya sama sekali dipanggil - saya pikir ini hanya untuk shell interaktif, tetapi tujuan dan urutan yang tepat dari berbagai skrip init adalah sesuatu yang menurut saya tidak akan pernah saya pelajari.
Saya harap ini dapat bermanfaat bagi orang lain yang memiliki semacam exec
dalam skrip startup mereka.
BTW - dua jawaban lainnya ada di jalur yang benar jadi saya sama sekali tidak yakin apakah saya harus 'menjawab' atau hanya mengomentari jawaban mereka. Jika menjawab pertanyaan saya sendiri salah secara moral di stackoverflow, beri tahu saya dan saya akan melakukan penyesalan. Terima kasih kepada penjawab lainnya.