GNU/Linux >> Belajar Linux >  >> Linux

Mendorong prompt PS1 saya melalui ssh

Unggah file di setiap mesin jarak jauh, misalnya ~/.my_custom_bashrc , dengan bash khusus Anda konfigurasi, (dalam hal ini PS1=... ) lalu luncurkan ssh dengan:

ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"

Anda dapat dengan mudah menggunakan bash berfungsi sebagai pembungkus agar mudah dibaca.


Jika Anda hanya ingin mengirim PS1 variabel, dan tidak mengandung ' (kutipan tunggal), coba:

ssh targethost -t "PS1='$PS1'; exec bash"

.bashrc lokal mungkin menimpa PS1 meskipun (terima kasih kepada Dennis Williamson karena telah menunjukkan hal ini).

Ada cara untuk mengirimkan variabel lingkungan melalui ssh, tetapi biasanya dinonaktifkan dalam konfigurasi server. Jika PermitUserEnvironment direktif diaktifkan dalam konfigurasi server dan setiap pengguna memiliki pasangan kuncinya sendiri (ya, Anda mungkin tidak seberuntung itu), Anda dapat menambahkan environment="PS1=…" ke baris di ~/.ssh/authorized_keys sesuai dengan kunci Anda.

Jika Anda ingin menyimpan konfigurasi Anda sendiri di akun pengguna bersama, Anda dapat membuat direktori file konfigurasi Anda sendiri dan menyetel HOME variabel lingkungan untuk menunjuk ke direktori itu.

ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/

Buat tautan simbolis di mrstatic.home direktori menunjuk kembali ke entri yang sesuai di direktori induk ketika Anda ingin berbagi file dengan pengguna lain.

Kemudian, masuk dengan

ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`

Jika Anda ingin memodifikasi .profile jarak jauh (atau file inisialisasi lainnya), Anda mungkin dapat mengotomatiskan pengaturan Anda. Banyak situs mengizinkan LC_* variabel lingkungan melalui (biasanya mereka digunakan untuk pengaturan lokal). Jika kedua syarat ini terpenuhi, Anda dapat menyetel variabel yang tidak benar-benar digunakan untuk lokal, katakanlah LC_USER , di sisi klien, dan uji di server .profile .

(Tentu saja akun bersama adalah ide yang buruk, tetapi saya sadar Anda mungkin tidak dalam posisi untuk mengubah situasi itu.)


ssh -t [email protected] "remote='$PS1' bash -i"

Kemudian, saat diminta:

PS1=$remote

Linux
  1. Cara membedakan direktori melalui ssh

  2. Gunakan perangkat melalui SSH?

  3. kunci ssh ssh-agent bash dan ssh-add

  1. Dinginkan prompt Bash Anda di Linux

  2. Bash Menimpa Baris Pertama, Ps1 Bash Prompt?

  3. Ssh – Redirect Stdout Melalui Ssh?

  1. Sorot Pemisah Jalur Di Ps1?

  2. Menjalankan File Skrip Melalui Ssh Melalui Sudo?

  3. Ssh – Mengapa Firefox Sangat Lambat Dibanding Ssh?