Jawaban:
Masukkan perintah ~/.bashrc. Apa pun di sana dieksekusi setiap kali Anda masuk.
Jika Anda memerlukan perintah untuk hanya berjalan ketika masuk melalui ssh (tetapi tidak ketika masuk secara fisik), Anda mungkin bisa menguji keberadaan SSH_CONNECTIONvariabel lingkungan, dan hanya menjalankan perintah jika Anda menemukannya.
Masukkan saja ini ke ~ / .bashrc atau /etc/bash.bashrc jika Anda menginginkan ini untuk semua pengguna:
if [[ -n $SSH_CONNECTION ]] ; then
echo "I'm logged in remotely"
fi
screensaya, saya mungkin menggunakan jawaban Anda dan meletakkannya di screensana sebagai gantinya. Masalahnya adalah bahwa menyelesaikan sesi layar akan kembali ke SSH prompt bukannya logout. Hanya menuliskan komentar ini memberi saya jawaban, meskipun: tambahkan logoutperintah setelah screenperintah.
exec commandakan mengganti shell saat ini dengan apa pun yang Anda jalankan.
Atau, Anda dapat menentukan perintah yang akan dijalankan selama doa ssh:
$ ssh -t server 'cmd; exec bash -l'
Perintah terakhir dalam daftar harus memulai sesi interaktif di shell pilihan Anda. Jika Anda memiliki banyak perintah untuk dijalankan, pertimbangkan untuk membuat file skrip di server SSH Anda.
Sebenarnya ~/.ssh/rcadalah tempat yang tepat bagi Anda untuk menambahkan perintah
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in,
just before the user’s shell (or command) is started. See the
sshd(8) manual page for more information.
Untuk terlebih dahulu menjalankan .bashrc pada host jarak jauh, kemudian jalankan perintah yang Anda lewati pada baris perintah (yang akan dapat menggunakan alias dan fungsi yang didefinisikan dalam .bashrc host jarak jauh Anda), kemudian meninggalkan Anda di bash prompt (dengan asumsi perintah yang Anda jalankan exict kembali ke prompt):
$ ssh user@host "bash -lc cmd; cmd; ..."
Opsi -l menjadikannya shell login (mis. jalankan .bashrc)
Opsi -c menyediakan perintah eksplisit yang akan dijalankan oleh bash
man bash).