Saya mencoba untuk memasukkan perintah multi-hop ssh saya ke file ssh .ssh / config.
Ini adalah grafik koneksi saya: laptop (saya di sini) ------> userver -------> workstation
Saya telah memasukkan kunci rsa publik ssh ke 'userver' dan 'workstation'. Saat ini saya dapat terhubung dengan mengetikkan baris ini:
ssh -A -t userserver@userver ssh -A userworkstation@workstation
Namun saya ingin dapat menggunakan kemampuan file config di ~ / .ssh / config untuk mencapai efek yang sama tetapi menggunakan satu perintah sederhana, yang juga memungkinkan saya untuk melakukan copy cepat dengan 'scp'. Satu-satunya masalah adalah 'userver' tidak memiliki perintah "nc" dan saya tidak memiliki superuser di sana, hanya mengontrol folder rumah saya. Meskipun demikian, saya mencoba beberapa hal:
Saya memiliki file konfigurasi ini di laptop saya (~ / .ssh / config):
# laptop config file
Host userver
Hostname userver_hostname
port 22
User server_user
Juga file konfigurasi lain di pengguna (~ / .ssh / config)
# userver config file
Host workstation
Hostname workstation_hostname
port 22
user workstation_username
Dengan file konfigurasi ini saya dapat terhubung sebagai
ssh -A -t userver ssh -A workstation
yang merupakan perbaikan, tetapi tidak cukup. Saya mencoba menambahkan host lain di konfigurasi laptop saya, seperti ini:
Host hop
ProxyCommand ssh -A -t userver ssh -A workstation
Lalu, ketika saya melakukannya
ssh hop
saya mendapatkan output berikut dengan kesalahan dan tidak dapat terhubung:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: $'SSH-2.0-OpenSSH_6.4\r': command not found
Ada ide?
sumber
Saya menemukan solusi berikut untuk bekerja jauh lebih baik daripada menggunakan netcat (
nc
) seperti pada contoh lainnya. Dengan netcat, koneksi saya sangat lambat dan berulang kali hang sampai saya menekan beberapa tombol. Anda juga tidak perlu menginstal netcat.Tambahkan yang berikut ke Anda
~/.ssh/config
:Maka Anda dapat ssh seperti ini:
Perhatikan juga bahwa alasan Anda
ProxyCommand
tidak bekerja adalah karena Anda tidak mendapatkan apaProxyCommand
yang berhasil.ProxyCommand
harus membuat pipa yangssh
dapat membuat koneksi SSL. Dengan kata lain, perintah harus memulai proses yang stdin dan stdout terhubungssh
kesshd
port. Dalam konfigurasi Anda, Anda membuat koneksi sshProxyCommand
yang menghubungkanssh
ke shell perintah daripada kesshd
port.sumber