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!
sumber
Jawaban:
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), jadi
you@yourserver$ ssh -p2000 user@localhost
EDIT: Mengubah nama host menjadi localhost
sumber
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):
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/mount
dan saya kira inilah yang Anda butuhkan alih-alih koneksi terminal jarak jauh sehingga Anda dapat mengedit file secara langsung dengan aplikasi Mac.sumber
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 bisassh
masuk ke mesin dan membuat / mencari file yang Anda butuhkan. Mentransfer mereka akan semudah mentransfer file lokal.sumber