Anda dapat menyalin sementara Anda .bashrc
ke mesin jarak jauh Anda dengan nama lain. Misalnya, menggunakan .bashrc_temp
:
user@local$ scp .bashrc user@remote:~/.bashrc_temp
Setelah itu Anda dapat masuk ke mesin jarak jauh:
user@local$ ssh user@remote
dan source
file .bashrc_temp
:
user@remote$ source ~/.bashrc_temp
Sekarang Anda dapat menggunakan .bashrc
fungsi Anda dan Anda. Ketika Anda selesai dengan pekerjaan Anda, Anda dapat menghapus file ~ / .bashrc_temp pada mesin remote dan logout.
Menyalin file dan login ke mesin jarak jauh dapat dilakukan dengan fungsi bash:
# copy the .bashrc to the remote machine
# and log into the remote machine.
# parameter $1: user@remote
function s() {
scp ~/.bashrc $1:~/.bashrc_temp
ssh $1
}
Perbarui :
Anda juga dapat mempertimbangkan untuk menyalin .bashrc
ke /tmp
pada mesin dan sumber jarak jauh Anda /tmp/.bashrc_temp
.
Pembaruan 2 :
Anda dapat masuk ke mesin jarak jauh dengan menggunakan ssh -t . Ini akan secara otomatis menggunakan temp Anda .bashrc
. Fungsi yang diperbarui s()
:
function s() {
scp ~/.bashrc $1:/tmp/.bashrc_temp
ssh -t $1 "bash --rcfile /tmp/.bashrc_temp ; rm /tmp/.bashrc_temp"
}
/tmp/
. Ini sepele dapat dieksploitasi oleh pengguna lain untuk menjalankan kode apa pun sebagai pengguna yang login. Ini harus digunakanmktemp
untuk memastikan file sementara memiliki nama yang unik.jens-na memberikan jawaban yang sangat bagus. Saya menghabiskan sedikit waktu dan kembali bekerja sedikit untuk bekerja sedikit lebih baik. Dengan cara ini, Anda dapat meneruskan parameter apa pun ke SSH, seperti nomor port. Perbedaannya adalah bahwa ia menggunakan
ssh
perintah untuk mengunggah.bashrc
file, alih-alihscp
, yang menggunakan nama parameter perintah yang berbeda.Anda juga akan melihat bahwa itu mengunggah file yang berbeda
.bashrc_remote
,, sehingga Anda dapat memilih dengan tepat apa yang ingin Anda sumber di server jauh, alih-alih semuanyaJalankan sebagai berikut:
Nama '
sshs
' adalah untuk "Sumber SSH". Gunakanssh
saat Anda tidak ingin sumber, dan gunakansshs
saat Anda melakukannya.https://gist.github.com/jonahbron/5549848
sumber
Pseudo-terminal will not be allocated because stdin is not a terminal
Saya pikir sshrc adalah apa yang Anda cari: https://github.com/Russell91/sshrc
Anda dapat menggunakan ini untuk mengatur variabel lingkungan, menentukan fungsi, dan menjalankan perintah post-login. Sesederhana itu, dan itu tidak akan berdampak pada pengguna lain di server - bahkan jika mereka menggunakan sshrc juga. Untuk konfigurasi lebih lanjut, lanjutkan membaca.
sumber
vim $(which sshrc)
dan Anda dapat melihat file bash. Anda dapat menambahkan perintah gema setelah setiap baris untuk melihat di mana ia hang.Tidak yakin dengan keterbatasannya, tetapi saya bisa membuatnya bekerja dengan sesuatu seperti:
sumber
RC_DATA
variabel.Inilah yang saya pikirkan. Hal ini memungkinkan Anda untuk mempertahankan file rc normal, tetapi juga melakukan segalanya dalam satu koneksi ssh (yaitu hanya perlu login sekali sebagai lawan melakukan scp terlebih dahulu).
Saya tidak yakin seberapa besar file rc itu, karena mungkin maksimal di beberapa titik.
sumber
Saya pikir https://github.com/fsquillace/pearl-ssh melakukan apa yang Anda butuhkan.
Saya menulisnya sejak lama sebelum sshrc lahir dan memiliki lebih banyak manfaat dibandingkan dengan sshrc:
Contohnya:
sumber
Salah satu opsi untuk membuatnya bekerja dengan satu sesi SSH adalah menggunakan variabel untuk menyimpan file bash Anda daripada menyalinnya.
Tampaknya bekerja untuk saya.
sumber
Saya mencari untuk memecahkan masalah seperti milik Anda, dan menyadari apa yang sebenarnya saya cari adalah sshfs. Mungkin Anda bisa menggunakannya juga?
Masalah saya adalah ketika ssh'ing, saya ingin menjaga warna, alias, fungsi dan skrip saya saat bekerja jarak jauh.
http://fuse.sourceforge.net/sshfs.html
sumber