Bagaimana cara mengidentifikasi server yang Anda gunakan saat menggunakan ssh dari terminal?
Saya harus ssh ke 30 server setiap hari, dan beralih di antara mereka terus-menerus.
Saat ini saya sedang mengedit nama tab dan menulis alamat IP untuk beralih dari satu ke yang lain.
Apakah ada cara otomatis untuk melakukan ini (menetapkan alamat IP server sebagai nama tab)? Adakah alternatif lain yang tidak melibatkan pengeditan file di setiap server?
command-line
ssh
RASG
sumber
sumber
user@hostname
di host pertama saya terhubung. saya ingin melihat alamat ip. juga, jika saya beralih dariserver1
keserver2
, tab tidak mengubah nama.Jawaban:
Saya biasanya menggunakan nama host, diatur melalui
$PS1
. Namun, jika Anda mau mengambil masalah, Anda bisa mulai menggunakan GNUscreen
dan kemudian Anda bisa mendefinisikan fungsi seperti:Penjelasan:
screen
tidak secara langsung membiarkan remote shell melakukan ini, dan Anda harus menyesuaikannya untuk memungkinkannya melakukannya, membuatnya lebih mudah bagi Anda untuk menetapkan judul secara lokal dan tetap menggunakannya.echo
string yang tepat . Anda mungkin harus melakukannya juga.screen
untuk memulai sesi denganssh
perintah. Sesi berakhir ketika perintah keluar.Anda dapat menyesuaikan ini dengan berbagai cara. Sebagai contoh, Anda dapat menyimpan nama host dan IP dalam file dan membacanya (seperti itu
ssh_config
) (dan mungkin menyimpan hal-hal lain untuk judul, seperti nama pengguna).Sekarang gunakan
ssh-title some.host
untuk terhubung. Saya pikir ini adalah satu-satunya cara Anda dapat melakukan ini tanpa mengedit sisi server apa pun.sumber
Beberapa cara untuk mengidentifikasi server:
PS1
) dan judul terminal - tidak aman (siapa pun dapat menduplikasinya) tetapi sederhana dan praktis.ip address
- Amankan dengan sidik jari SSH, dan lebih mudah dibaca.hostname
- tidak aman tetapi sangat mudah dibaca.sumber
Pilihan lain adalah dengan menggunakan liquidprompt --- berfungsi untuk keduanya
bash
danzsh
, dan dapat dengan mudah dikonfigurasikan untuk memiliki set judul terminal dan bahkan untuk warna dalam berbagai warna nama host di prompt:sumber
Solusi ini sedikit meretas, tetapi saya pikir ini akan melakukan apa yang Anda cari. Anda akan membutuhkan
xdotool
danwmctrl
menginstal agar ini berfungsi.Pertama Anda harus mengedit
~/.bashrc
file Anda karena secara default terminal akan me-reset judulnya setelah setiap baris, membuat judul baris perintah tidak berguna.Tepat setelah:
xterm*|rxvt*)
Menggantikan:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
Dengan:
PS1="${debian_chroot:+($debian_chroot)}\u@\h \w\a$ "
Selanjutnya kita akan membuat
ssh
skrip khusus yang disebut apa pun yang Anda inginkan, tetapi untuk jawaban ini saya akan memanggil skrip sayatab-ssh
. Buka editor teks dan simpan yang berikut ini sebagaitab-ssh
:Kemudian buat itu bisa dieksekusi:
chmod +x tab-ssh
Sekarang, dengan asumsi Anda menggunakan
bash
dangnome-terminal
, menjalankan skrip harus membuka tab baru, mengganti nama, dan memulaissh
sesi. Untuk exmaple:tab-ssh [email protected]
akan membuka tab baru, ganti namanya menjadi
0.0.0.0
(yaitu segala sesuatu yang mengikuti tanda "@"), kemudian jalankan[email protected]
.Dibuat menggunakan yang berikut ini:
sumber