Anda menyamakan pengaturan lokal ke pengaturan jarak jauh .
Secara lokal, contoh bash, shell berjalan saat ini di mana Anda menulis:
ssh user@host command
Akan menjalankan perintah ssh (tidak lebih) sebagai ssh klien.
Untuk melakukannya shell lokal tidak perlu memulai sub-shell atau shell baru atau login.
Perintah dieksekusi sebagai ls
perintah adalah: secara lokal.
Ini adalah perintah ssh klien yang membuka koneksi jaringan ke sistem jarak jauh , di mana, jika dikonfirmasi dengan benar, a shell baru akan mulai menjalankan perintah yang ditulis sebagai argumen ke ssh, atau, jika tidak ada argumen yang diberikan, mengharapkan perintah lebih lanjut pada koneksi itu.
Itu baru Remote shell akan menjadi shell login karena pengguna jarak jauh (ke sistem itu) perlu diautentikasi untuk login. Atau, jika beberapa perintah tertentu diberikan, jalankan saja perintah tersebut dengan hak pengguna yang diautentikasi.
Anda dapat melihat file mana yang diambil dengan menambahkan a $file sourced
ke awal setiap file (di sistem jarak jauh ) (root diperlukan untuk mengubah /etc/
file):
$ a=(~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile)
$ for f in "${a[@]}"; do sed -i '1 i\echo "'"$f"' was read"\n' "$f"; done
Dan kemudian jalankan konsol ssh:
$ ssh sorontar@localhost
/etc/profile was read
/etc/bash.bashrc was read
/home/sorontar/.profile was read
/home/sorontar/.bashrc was read
Dalam hal ini, kedua bashrc
file dibaca karena setiap profile
file memiliki perintah untuk memasukkannya, bukan karena shell login langsung mengambilnya.
$ ssh sorontar@localhost :
/etc/bash.bashrc was read
/home/sorontar/.bashrc was read
Dalam sistem ini, dimana bashrc
dibaca dalam kedua kasus.
Tidak perlu menambahkan source ~/.bashrc
perintah untuk mengeksekusi.
Ubah PATH
Yang perlu Anda lakukan adalah memasukkan pengaturan yang benar untuk mengubah "$ PATH", baik /etc/bash.bashrc
untuk semua pengguna yang memulai shell di sistem ini. Atau ~/.bashrc
untuk setiap pengguna yang membutuhkannya. Anda dapat menambahkan (atau mengedit) kerangka pengguna .bashrc
agar /etc/skel/
pengguna baru yang dibuat memiliki file yang benar tersedia.
Di atas hanya berlaku untuk bash. Jika Anda memerlukan pengaturan untuk semua shell, mungkin mengatur PATH variabel lingkungan menggunakan file ssh ~/.ssh/environment
untuk setiap pengguna yang membutuhkannya. Atau gunakan /etc/ssh/sshrc
untuk pengaturan global dalam sistem di mana server ssh berjalan (silakan baca bagian File di man sshd
untuk beberapa detail tambahan).
.bashrc
bersumber, tetapi mungkin memiliki tes untuk interaktivitas di atas. Hal-hal yang Anda masukkan sebelum pemeriksaan itu harus berlaku, dan itulah yang saya lakukan untuk memaksa PATH ketika server tidak mengizinkan lingkungan pengguna atau penggunaan~/.pam_environment
.