Inilah masalahnya:Saya mencoba SSH ke dalam sistem yang dapat diakses dari setidaknya 3 jaringan berbeda—terkadang secara langsung, terkadang melalui proxy—pada waktu yang berbeda.
Menghubungkan secara langsung jauh lebih cepat dan lebih dapat diandalkan daripada menghubungkan melalui host perantara, yang sekali lagi jauh lebih cepat dan lebih dapat diandalkan daripada menghubungkan melalui internet umum, jadi saya ingin SSH mencoba menghubungkan dalam 3 cara berbeda dengan cara yang diprioritaskan, memilih pertama yang berhasil.
Semuanya adalah mesin yang sama, tentu saja, jadi saya tidak ingin terus-menerus memilih di antara 3 alias berbeda secara manual, tergantung dari mana saya terhubung.
Namun, saya tidak dapat menemukan mekanisme apa pun untuk menyelesaikan ini. Apakah mungkin melakukan ini sama sekali, atau tidak?
Jika tidak, apa yang biasanya dilakukan orang dalam situasi seperti itu?
Jawaban yang Diterima:
Jangan gunakan alias untuk ssh
koneksi! Gunakan ssh_config
yang tepat di ~/.ssh/config
. Ini memiliki beberapa fitur yang sangat kuat.
Katakanlah Anda dapat mengidentifikasi di jaringan mana Anda berada. Misalnya menggunakan IP Anda, yang dapat ditarik misalnya menggunakan hostname -I
. Jadi mari kita tulis beberapa konfigurasi:
# in network1 I am getting ip from "10.168.*.*" and I need to connect through proxy
Match Host myalias Exec hostname -I | grep 10\.168\.
Hostname real-host-IP
ProxyCommand ssh -W %h:%p proxy-server
# in network2 I am getting IP from "192.168.*.*" and I do not need a proxy
Match Host myalias Exec hostname -I | grep 192\.168\.
Hostname real-host-IP
# in network3 I am getting something else
Saya yakin Anda mengerti maksudnya ...