Sebagai bagian dari upaya saya untuk mengurangi kebisingan dalam log dan sedikit mengurangi kemampuan menemukan (dan di atas fail2ban, hanya mengizinkan otentikasi kunci publik, dll.) Saya secara rutin mengubah sshd-port pada server yang saya atur ke port yang berbeda, misalkan 5492. Saat ini Saya menambahkan -p 5492 ke perintah ssh saya, atau menambahkan port untuk setiap server tertentu ke server saya ssh_config
.
Apakah ada cara untuk mengkonfigurasi ssh untuk mencoba menghubungkan ke port 22 dan port 5492 jika port 22 tidak berfungsi?
ssh
command-line
Riley
sumber
sumber
ssh
kehadiran apa pun untuk luar.Jawaban:
Anda bisa membungkus skrip shell
ssh
tetapissh
itu sendiri tidak akan melakukannya.Salah satu cara menggunakan fungsi bash adalah ini (dimasukkan ke dalam
~/.bashrc
):Ngomong-ngomong, disarankan untuk menggunakan
root
port -erverved untuk layanan sistem sepertissh
untuk menghindari pengguna dari memiliki proses yang mendengarkan, katakanlah, port 5492. Mereka mungkin bermain manusia di tengah dan mungkin menangkap data login. Jadi, gunakan porta <1024.sumber
ssh
mengembalikan bukan nol. Contoh sepele akan menjadissh user@server false
.command
sekarang. Hanya ingin menghindari rekursi, seperti yang sudah Anda duga.ssh
- jika ada kesalahan ssh (sebagai lawan dari perintah remote gagal), itu akan keluar dengan status 255. Dengan demikian,command ssh -p 22 "$@"; if [ "$?" -eq 255 ]; then command ssh -p 5492 "$@"; fi
harus bekerja.ssh
itu sendiri dapat melakukan ini melaluiMatch
didokumentasikanssh_config(5)
meskipun dokumentasi agak jarang pada contoh. Bentuk ini mungkin cocok jika seseorang ingin mendorong kompleksitas ke dalam konfigurasi SSH meskipun dibatasi oleh batasanssh_config(5)
sintaks dan mungkin memerlukan beberapa mengutak-atik untuk hasil yang diinginkan. Khususnya port khusus tidak dapat diatur atau dapat diatur salah dariMatch
upaya sebelumnya . Inilah sebabnya, di bawah ini, ditetapkan dua kali saat diuji untuk, atau sekali untuk default, dan tidak diatur ketika menetapkan default kanonik.is-ssh-up
hanya memeriksa apakah sesuatu merespons pada port yang diberikan dan mungkin terlihat sepertisumber
Anda dapat menggunakan fungsi wildcard dari
~.ssh/config
, menempatkan entri ini di daftar Anda:Tapi ini tidak akan kembali ke 22 dengan sendirinya.
Jika Anda meletakkannya di akhir, Anda masih bisa menimpanya untuk host yang Anda butuhkan 22 dengan meletakkan nilai yang berbeda di atasnya. (Dan Anda selalu dapat menimpanya di baris perintah.)
sumber