Saya ingin mempercepat koneksi ke server tertentu.
Saya punya server katakanlah:
123.123.123.1
123.123.123.2
123.123.123.3
Saya biasanya terhubung dengan yang berikut ini:
ssh -p 12345 my_user@123.123.123.1
Ini menyakitkan karena satu-satunya perbedaan antara server adalah jumlah ip terakhir.
Saya mencoba kode berikut:
alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<'
Namun saya mendapatkan kesalahan:
karl@karls-laptop ~/scripts $ ssht 1
Pseudo-terminal will not be allocated because stdin is not a terminal.
Apakah ada cara untuk membuatnya bekerja?
123.123.123.1 host1
kemudian gunakanssh myuser@host1 -p12345
Jawaban:
Ini panggilan untuk fungsi - sederhana dan kuat, sedangkan
alias
dalam hal ini akan rapuh.Sesuatu seperti ini harus dilakukan:
Kondisi
[[ $1 =~ ^(1|2|3)$ ]]
ini memastikan Anda telah memasukkan salah satu dari 1, 2, 3 sebagai argumen pertama (argumen trailing apa pun diabaikan).Sekarang, Anda dapat memberikan oktet terakhir yang diinginkan sebagai argumen pertama:
Letakkan ini di
~/.bashrc
karena tersedia di sesi interaktif apa pun.sumber
exit
denganreturn
dan sertakan penggunamy_user
. :)octet=$1; [[ $octet =~ ^[0-9]+$ ]] && [[ $octet -lt 255 ]] && [[ $octet -gt 0 ]] && ssh -p <portNumber> user@hostname
~/.ssh/config
fileGunakan cara yang dimaksud dan tuliskan opsi dan aliasnya
~/.ssh/config
:dan seterusnya...
Dan kemudian hubungkan hanya menggunakan
sumber
Host 123.123.123.*
itu menentukan port dan nama pengguna!Anda dapat menggunakan pola di
~/.ssh/config
. Dariman ssh_config
:Dikombinasikan dengan:
Jadi, di Anda
~/.ssh/config
, masukkan:Kemudian:
sumber
Gunakan fungsi sebagai gantinya:
Solusi yang lebih baik adalah menggunakan
config
file ssh :dengan beberapa baris yang mirip dengan:
Anda juga dapat menggunakan tombol ssh untuk meningkatkan kecepatan, akhirnya Anda hanya menjalankan:
dan Anda terhubung ke server itu.
sumber
.bashrc
atau.bash_func
kemudian sumber di.bashrc
file Anda .Anda bahkan tidak perlu menggunakan nama seperti ssht. Nama dimulai dengan digit, bahkan hanya digit nama host yang valid dalam file konfigurasi ssh.
Di bawah ini berfungsi pada Xubuntu Xenial
Bagian dari ~ / .ssh / config saya
Command I run (di bawah ini saya tambahkan
-vv
untuk logging verbose keSTDOUT
alias layar Anda secara default)Keluaran
Pembaruan - di bawah ini adalah solusi alternatif peretasan, gunakan hanya untuk latihan bashist, mungkin untuk hal-hal cepat dan kotor:
Apa yang dilakukannya
-L
,-R
,-D
), modus (verbose-vv
), tidak ada TTY (-T
) dllMisalnya saya ingin memulai proxy kaus kaki tanpa terminal
Seperti yang Anda lihat, tidak ada command prompt, itu dieksekusi dengan
-vv
,-T
,-D 1080
argumen.Saya dapat memverifikasi tunnel (pada dasarnya SOCKS5 proxy) pada mesin saya juga
sumber