Simpan alamat secara permanen saat menggunakan SSH

12

Saya memiliki beberapa server jarak jauh yang saya hubungkan melalui terminal. Server tidak memiliki domain, hanya alamat IP yang sulit diingat ketika saya mendapatkannya.

Apakah ada cara untuk menyimpan nilai secara permanen di terminal, sehingga saya bisa melakukan hal berikut?

server1 = 111.222.111.222

Dan ketik perintah seperti:

ssh root@server1

dari pada:

ssh [email protected]
biasa
sumber

Jawaban:

22

Untuk koneksi SSH, Anda dapat membuat file konfigurasi pengguna ~/.ssh/configdan menempatkan pemetaan di sana misalnya

Host server1
  Hostname      111.222.111.222

Anda dapat dengan mudah menambahkan bidang lain seperti Port(untuk port non-standar) dan User(berguna jika nama pengguna Anda pada sistem jarak jauh berbeda dari pada sistem lokal). Lihat man ssh_configdetail lengkapnya.

Steeldriver
sumber
14

Ya, tulis saja di file /etc/hosts. Ini memiliki sintaks berikut:

1.2.3.4 servername additional_servername

Dimana:

  • 1.2.3.4 adalah alamat IP
  • servername adalah namanya
  • additional_servername adalah nama opsional

Setelah menyimpan, Anda dapat mencapai server dengan namanya.

kekacauan
sumber
@theusual Jika ini adalah jawaban yang Anda terima, silakan pertimbangkan menerimanya (centang di bawah tombol suara atas / bawah).
jpmc26
8

Tentu saja untuk masalah khusus Anda, Anda ingin mengikuti saran @chaos dan @steeldriver, tetapi dalam kasus umum, untuk "menyimpan nilai-nilai secara permanen di terminal", Anda mencari variabel-variabel shell. Cara mengaturnya akan tergantung pada shell Anda (saya kira echo $SHELLakan memberikan informasi yang relevan).

Jika dengan "secara permanen" maksud Anda "selama saya tidak keluar dari sesi terminal ini", maka Anda dapat menggunakan export server1=111.222.111.222perintah jika Anda menggunakan bashshell berbasis-( setenv server1 111.222.111.222untukcsh/tcsh shell berbasis, jika saya ingat dengan benar). Kemudian Anda dapat mengakses variabel dengan awalan dengan $ : ssh root@$server1.

Jika dengan "secara permanen" maksud Anda "setiap kali saya meluncurkan terminal baru", maka Anda perlu mengatur variabel Anda di salah satu file init shell. Misalnya dalam $HOME/.bashrcuntuk bashkerang berbasis, atau$HOME/.cshrc - mungkin menggunakan sintaks yang sama seperti mentionned dalam paragraf sebelumnya. Perhatikan bahwa Anda harus mencari file init (mis. source $HOME/.bashrcAtau membuka shell baru agar perubahan diperhitungkan.

NB: Jawab dari memori, mungkin memerlukan beberapa penyesuaian kecil.

Skippy le Grand Gourou
sumber
2
Secara permanen saya bahkan jika me-restart komputer. Saya akan melihat ini, mungkin berguna beberapa saat.
theusual
Kemudian metode kedua berlaku (file shell init).
Skippy le Grand Gourou
1

Bukan jawaban langsung untuk pertanyaan (kekacauan dan steeldriver telah memberikan apa yang saya pikir akan menjadi solusi literal terbaik), tetapi jika Anda hanya perlu ssh ke satu pengguna di satu alamat di sebagian besar kasus, kemudian melihat pengeditan yang .bash_aliasesfile dalam direktori home Anda harus berguna, karena Anda dapat membuat alias untuk perintah terminal seluruh.

DTR
sumber
0

Jawaban spesifiknya sangat bagus.

Secara umum, jika Anda ingin memiliki beberapa hal yang didefinisikan / setup dalam sebuah shell, cukup tulis sebuah skrip untuk melakukannya dan kemudian jalankan dengan sourceatau. ketika Anda ingin agar setup tersebut berlaku.

Jika itu adalah sesuatu yang Anda inginkan sepanjang waktu, Anda dapat sumbernya di .profile (untuk shell login) atau di .bashrc untuk semua shell (jika Anda menggunakan bash).

Dengan pendekatan seperti ini, Anda dapat memiliki beberapa skrip untuk mengatur lingkungan kerja yang berbeda sesuai kebutuhan selama Anda memastikan mereka tidak saling menginjak jika Anda memohon salah satu dari mereka setelah memohon yang lain terlebih dahulu.

Joe
sumber