akses halaman web melalui ssh

14

Saya perlu mengakses IEEE xplore, tetapi saya tidak punya hak untuk mengunduh dari institut.

Saya bisa masuk ke server institut via ssh,

jadi Bagaimana saya bisa mengakses IEEE xplore melalui server institute via ssh?

Saya telah mencari solusi, beberapa jawaban:

ssh -L 8080:localhost:80 user@remoteserver

dan kemudian dia berkata:

Sekarang, arahkan browser lokal Anda ke localhost: 8080. Itu harus diteruskan ke localhost: 80 di server jauh. ### Tapi saya masih tidak tahu cara mengkonfigurasi laptop saya, saya menggunakan chrome.

Saya sangat menghargai bantuan Anda!

ulyssis2
sumber
Referensi yang bagus di sini: help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
ThorSummoner

Jawaban:

23

Metode pertama:

Luncurkan terowongan SSH

Untuk memulai terowongan SSH Anda, cukup buka terminal dan sambungkan ke server jauh Anda melalui SSH dengan tanda-tanda berikut:

ssh -D 8080 -C -N [email protected]

Jelajahi Web dengan Terowongan SSH Anda (Chrome)

Sekarang, mari mulai menjelajah web menggunakan terowongan SSH baru kami.

  • Buka Google Chrome
  • Pilih ikon kunci inggris di kanan atas
  • Pilih 'Pengaturan'
  • Pilih 'Tampilkan pengaturan lanjutan ...'
  • Pilih 'Ubah pengaturan proxy ...'
  • Pilih 'Proxy SOCKS'
  • Masukkan '127.0.0.1 ′
  • Masukkan port '8080 ′
  • Simpan perubahan dengan memilih 'OK'

Cari di Google untuk 'my ip' dan lihat apa alamat IP Anda sekarang.

Ini akan meluncurkan terowongan SSH kami di port 8080 dan merutekan semua lalu lintas (dengan aman) melalui server di example.com.

Keluar dari Terowongan SSH

Untuk keluar dari terowongan SSH, cukup nonaktifkan proxy SOCKS dalam browser Anda.

sumber

Metode kedua:

Anda dapat melakukannya dengan mudah menggunakan Shellinabox

Pastikan Anda telah memeriksa Universe Repository

Untuk memasang

 $ sudo apt-get install openssl shellinabox

Mengkonfigurasi Shellinabox

Secara default, shellinaboxd mendengarkan pada port TCP 4200 di localhost. Selama instalasi sertifikat SSL yang ditandatangani sendiri secara otomatis dibuat di bawah "/ var / lib / shellinabox" untuk menggunakan protokol HTTPS.

$ sudo vi /etc/default/shellinabox

# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125"

# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125 --localhost-only"

NB: ganti ip 172.16.25.125 dengan milik Anda

Mulai Shellinabox

Setelah selesai dengan konfigurasi, Anda dapat memulai layanan

$ sudo service shellinaboxd start

Verifikasi Shellinabox

Sekarang mari kita verifikasi apakah Shellinabox berjalan pada port 4200 menggunakan perintah "netstat".

$ sudo netstat -nap | grep shellinabox
or
# netstat -nap | grep shellinabox

tcp        0      0 0.0.0.0:4200            0.0.0.0:*               LISTEN      12274/shellinaboxd

Sekarang buka browser web Anda, dan arahkan ke 'https: // "Your-IP-Adress: 6175"'. Anda harus dapat melihat terminal SSH berbasis web. Login menggunakan nama pengguna dan kata sandi Anda dan Anda akan disajikan dengan prompt shell Anda.

masukkan deskripsi gambar di sini

sumber

Maythux
sumber
@maythus, terima kasih banyak, jawaban Anda bagus. Saya memecahkan masalah saya dengan solusi 1.
ulyssis2
@ ulyssis2 Anda sangat disambut sobat
Maythux
@kimerseen Anda dipersilakan teman
Maythux
@ Maythux, bisakah kamu membantu saya dengan pertanyaan saya askubuntu.com/questions/987626/shell-in-a-box-session-closed
MiHawk
2

Contoh yang Anda berikan benar, tetapi agak menyesatkan. Ini seharusnya bekerja:

ssh -L 8080:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

Misalnya, pertimbangkan kotak jauh yang menjalankan ssh yang dapat mengakses halaman web ini, yang ingin saya lihat secara lokal:

http://192.168.1.2/index.html

Untuk membuat terowongan di kotak lokal saya yang memungkinkan saya menjelajah ke halaman jarak jauh itu, saya jalankan secara lokal:

ssh -L 8080:192.168.1.2:80 user@remote-ssh-server

Dan, kemudian di browser web, saya mengunjungi:

http: // localhost: 8080 / index.html

Jika Anda perlu (atau ingin) menghilangkan port specifier, Anda harus membuka terowongan sebagai root, karena 80 adalah port "privilege" (<1024):

sudo ssh -L 80:<remote-web-host-you-want-to-see>:80 remote-user@remote-ssh-server

Kemudian, Anda dapat mengunjungi secara lokal:

http: //localhost/index.html

Tidak diperlukan konfigurasi lain.

Kebetulan, ini hanya berfungsi untuk satu host yang ingin Anda lihat secara lokal. Jika Anda perlu melihat lebih banyak, Anda harus membuka lebih banyak terowongan di port lain atau memeriksa solusi lain yang meminta terowongan untuk semua host jarak jauh melalui proxy.

Ini adalah penggunaan -Lswitch ke-3 dari man ssh:

 -L [bind_address:]port:host:hostport
 -L [bind_address:]port:remote_socket
 -L local_socket:host:hostport
 -L local_socket:remote_socket
         Specifies that connections to the given TCP port or Unix socket on the
         local (client) host are to be forwarded to the given host and port, or
         Unix socket, on the remote side.  This works by allocating a socket to
         listen to either a TCP port on the local side, optionally bound to the
         specified bind_address, or to a Unix socket.  Whenever a connection is
         made to the local port or socket, the connection is forwarded over the
         secure channel, and a connection is made to either host port hostport,
         or the Unix socket remote_socket, from the remote machine.

         Port forwardings can also be specified in the configuration file.  Only
         the superuser can forward privileged ports.  IPv6 addresses can be
         specified by enclosing the address in square brackets.

         By default, the local port is bound in accordance with the GatewayPorts
         setting.  However, an explicit bind_address may be used to bind the
         connection to a specific address.  The bind_address of “localhost”
         indicates that the listening port be bound for local use only, while an
         empty address or ‘*’ indicates that the port should be available from
         all interfaces.
Trevor
sumber