Biasanya, jika Anda memberikan perintah ke ssh seperti itu
ssh me@example.com 'some-command.sh'
Anda mendapatkan sesi non-interaktif, dan ssh keluar segera setelah perintah (atau skrip, atau apa pun) dijalankan. Bagaimana saya bisa mendapatkan sesi interaktif, dan belum menjalankan perintah yang saya tentukan dari mesin lokal saya. Misalnya, saya ingin dapat membuka layar dan memulai kembali sesi layar tertentu:
ssh me@example.com 'screen -r 12345'
tetapi ini tidak diperbolehkan, mengembalikan kesalahan "Harus terhubung ke terminal." yang saya anggap berarti pada dasarnya "harus memanggil perintah ini dari shell interaktif".
Sebagai contoh lain, saya menggunakan banyak mesin di tempat kerja yang sering mengharuskan saya untuk menggunakan akun bersama untuk memiliki hak untuk melakukan hal-hal tertentu (ya saya tahu: ide buruk tapi jangan salahkan saya, saya tidak mengatur hal-hal yang cara), dan mereka biasanya memiliki ksh sebagai shell default. Saya ingin masuk, beralih ke bash (atau zsh), dan sumber .bash_profile (atau .zshrc) akun saya sendiri. Ini akan mudah jika saya bisa membuat sesi ssh interaktif dan meneruskan perintah ke mesin jarak jauh untuk dijalankan saat login.
Saya memiliki solusi yang sangat kludgey (dan belum diuji) dalam pikiran bahwa saya akan memposting, tetapi saya berharap seseorang tahu cara yang lebih baik.
PEMBARUAN: bagi mereka yang tidak menyadari hal ini, saya tidak berencana untuk melakukan semua ini dengan tangan, jadi menyuruh saya untuk membuka sesi interaktif dan kemudian melakukannya dengan tangan tidak benar-benar menyelesaikan apa pun.
PEMBARUAN KE-2: Mencoba sekali lagi untuk mengklarifikasi: Saya mencoba menjalankan perintah (sewenang-wenang) di server (ditentukan secara program pada klien) tetapi kemudian memiliki sesi interaktif terbuka yang dipengaruhi oleh apa pun yang dilakukan oleh perintah-perintah program tersebut.
echo "command" | ssh user@remote_host