SSH kembali ke mesin lokal dari sesi SSH jarak jauh


12

Saya mencoba melakukan sesuatu yang agak tidak biasa (bagi saya) dengan SSH dan saya tidak dapat membuatnya bekerja, semoga Anda dapat membantu.

Saya ingin membuat koneksi ke server jauh dari Mac saya menggunakan SSH. Sejauh ini baik. Sekarang agak sulit, dengan koneksi ke server jarak jauh didirikan Saya ingin kemudian memulai koneksi dari server jauh KEMBALI ke mesin lokal. Saya tahu, gila. Pada dasarnya saya harus melewati rintangan ini untuk dapat menelusuri server jauh dan kemudian mengirim informasi file kembali ke mesin lokal saya sehingga dapat ditangani dengan aplikasi pada mesin lokal. Semoga itu masuk akal!

Saat ini jika saya SSH kembali ke mesin lokal setelah saya masuk ke server jauh, terminal hanya akan duduk di sana berputar, tidak ada kesalahan bahkan dengan -v.

Saya mencoba untuk menemukan di mana saya harus menelepon dengan melihat output dari variabel $ SSH_CLIENT, tapi saya sedang menggunakan koneksi internet vanilla standar (tidak ada alamat ip statis) Saya pikir ini mungkin yang menyebabkan masalah.

Hal-hal yang telah saya tetapkan: Saya menggunakan Mac (OS X 10.6.4) dan saya telah mengaktifkan Remote Login di preferensi sistem / berbagi. Jika saya mencoba dan SSH ke mac saya dari komputer lain di LAN, saya tidak dapat menghubungkan masalah. Jika saya mencoba dan SSH ke server lain (bukan mesin lokal saya) dari server jarak jauh saya, saya dapat terhubung tanpa masalah.

Jadi fakta di atas membuat saya berpikir bahwa saya jelas berkaitan dengan firewall dll pada mesin lokal dan jarak jauh.

Saya yakin saya pasti kehilangan sesuatu yang sangat jelas di sini, tetapi untuk kehidupan saya, saya tidak bisa mengatasinya.

Setiap bantuan, tautan, atau dorongan umum ke arah yang benar akan sangat dihargai!


Anda dapat menelusuri server jarak jauh dengan ssh. Atau apakah Anda mencoba menggunakan afs? Bagaimana dengan portforwardings dan / atau sftp / scp?
Andreas Rehm

Hai yang disana. Ya saya dapat menghubungkan dan menelusuri struktur direktori server jarak jauh tanpa masalah. Saya tidak yakin apa yang Anda maksud, maaf. Pada dasarnya rencananya adalah ini: Saya ingin ssh ke server Linux jarak jauh saya dari Mac lokal saya, menelusuri file dan kemudian dapat menyalurkannya kembali ke koneksi yang sudah ada (atau menghasilkan koneksi baru berdasarkan yang sudah ada) untuk mesin lokal tempat aplikasi Mac akan membaca / mengedit data sebelum mengirimnya kembali ke server. Saya tidak terlalu rewel bagaimana saya mencapai ini dalam hal melibatkan protokol lain.
i0n

Jawaban:


9

Jika ketika Anda terhubung kembali ke lokal Anda memungkinkan Anda untuk masuk sebelum menggantung, maka ini bukan jawabannya. Jika Anda tidak sampai sejauh itu, Anda mungkin tidak akan kembali ke Mac Anda (baik tidak sampai ke mana pun atau mengenai SSH di gateway). Coba reverse tunnel (ini akan membutuhkan GatewayPorts diatur ke Aktif di sshd_config di server Anda, tapi saya yakin ini default):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
Itu seharusnya memungkinkan Anda untuk terhubung ke server seperti biasa, tetapi juga membuka terowongan sehingga Anda dapat terhubung kembali di port 2000 (port apa pun di atas 1024 seharusnya berfungsi), jadiyou@yourserver$ ssh -p2000 user@localhost

EDIT: Mengubah nama host menjadi localhost


2
Anda harus menggunakan user @ localhost dalam perintah terakhir
b0fh

1
Ini sangat membantu, hampir membuat saya berada di tempat yang saya inginkan! Saya dapat membuat koneksi dengan terowongan terbalik seperti di atas dan kemudian ssh kembali ke Mac lokal saya menggunakan ssh -p 2000 i0n @ localhost. Jadi bagaimana saya bisa mencapai ini tanpa mengetahui sebelumnya bahwa saya memerlukan fungsi ini? Dengan kata lain dengan koneksi ssh yang ada dan standar. Apakah ini mungkin?
i0n

Terima kasih b0fh, saya sedang dalam perjalanan ke tempat tidur ketika saya menulis bahwa =) i0n - secara naluriah saya ingin mengatakan bahwa Anda tidak dapat mengubah koneksi yang ada untuk melakukan ini, tetapi Putty dapat melakukannya sehingga harus ada cara. Anda selalu dapat mengirim koneksi SSH baru dengan sebuah terowongan ketika Anda perlu menyambungkan kembali, tapi saya kira ini akan dilakukan secara terprogram sehingga mungkin bukan pilihan. Cari Harapan - jika ada bahasa yang bisa siap menggunakan SSH, itu saja.
James L

2

Apakah mesin lokal Anda dapat diakses dari server? Bisakah kamu ping itu? Saya meminta itu karena apa yang Anda lakukan harus bekerja jika mesin Anda dapat diakses. Server Anda ada di internet atau di LAN, subnet yang sama?

Ngomong-ngomong, jika Anda hanya perlu mengedit file, mengapa Anda tidak menggunakan scp untuk menyalin file ke mesin lokal Anda? Anda dapat menggunakan ssh untuk mencari file di server jauh dan ketika Anda memiliki jalurnya, masukkan di mesin lokal Anda (di terminal lain):

scp user@server:/path/to/file/on/server /local/path/to/save/file

Untuk mengembalikan file, scp lagi beralih jalur.

Obs: Anda tidak memerlukan koneksi ssh awal untuk menggunakan scp - itu akan membuat yang baru

Ini di atas adalah jika Anda perlu mengaksesnya di terminal. Di linux (dan tentu saja di Mac tetapi saya tidak tahu bagaimana melakukannya), Anda dapat memasang lokasi ssh remote di Networks dan menggunakan koneksi saat Anda menggunakan disk lokal (ini sftp dan koneksi dalam bentuk: sftp://user@server:/path/to/mountdan saya kira inilah yang Anda butuhkan alih-alih koneksi terminal jarak jauh sehingga Anda dapat mengedit file secara langsung dengan aplikasi Mac.


1

Anda mungkin juga ingin melihatnya sshfs(Anda perlu MacFuse untuk ini). Ini memungkinkan Anda untuk memasang direktori pada mesin jarak jauh dan mengaksesnya seperti folder biasa pada mesin Anda. Selain itu, Anda masih bisa sshmasuk ke mesin dan membuat / mencari file yang Anda butuhkan. Mentransfer mereka akan semudah mentransfer file lokal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.