Layout jaringan saya kira-kira seperti ini:
Sekarang Alice memiliki akses ke SSH gateway (hanya gateway dari sekarang) dengan:
ssh [email protected]
dan file kunci yang diotorisasi pada gateway terlihat seperti ini
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
jadi ketika Alice mencoba untuk terhubung ke Gateway dengan kunci privatnya, dia sebenarnya akan terhubung ke server Web (pc gateway dapat membuat koneksi ke server web dengan kunci privat tanpa kata sandi, sehingga tetap transparan).
Pertanyaan
Bagaimana saya bisa mengatur ini sehingga Alice akan dapat scp hal-hal ke server web juga?
Saya tahu ini membuat koneksi terpisah, tetapi apakah ada cara untuk ini berfungsi sebagai ssh normal sehingga bahkan sesuatu seperti itu
-R12345:localhost:22
akan berfungsi?
Saya memiliki masalah yang sama persis seperti ini tetapi saya membuatnya bekerja tanpa secara radikal mengubah segalanya.
Yang saya lakukan adalah menambahkan $ SSH_ORIGINAL_COMMAND ke gateway otor_keys untuk melewati apa pun di rantai ke server terakhir.
Jadi ini:
Menjadi:
-Q digunakan untuk menekan koneksi pesan tertutup dari mesin titik akhir sehingga tidak berakhir pada output lokal jika menggunakan pengalihan secara lokal.
Anda kemudian dapat menggunakan scp seperti ini:
Ini memiliki keuntungan tambahan yaitu membiarkan pengguna melewati perintah melalui perintah ke server titik akhir dan mendapatkan hasilnya kembali di sesi lokal mereka sehingga mereka dapat mengarahkan mereka ke file atau menyalurkannya ke program lain.
Sebagai contoh:
Ini berfungsi karena tampaknya sshd mengisi variabel lingkungan $ SSH_ORIGINAL_COMMAND dengan dan perintah yang ditentukan oleh klien ssh tetapi saya tidak yakin mengapa ini secara ajaib memungkinkan scp untuk melewati mesin endpoint serta perintah.
sumber
Sayangnya port-forwarding tidak akan membantu untuk menyalin file langsung dari workstation Alice ke server web menggunakan
scp
. Dalam posting SO ini saya menjelaskan mengapa ssh (dan scp karena menggunakan mekanisme otentikasi yang sama) tidak akan berfungsi untuk koneksi port-forwarded menggunakan ssh.Pilihannya adalah mengatur server VPN di mesin yang bertindak sekarang sebagai gateway SSH, sambungkan ke sana dan kemudian Anda memiliki akses langsung ke mesin apa pun di belakang firewall.
sumber