accéder à la page Web via ssh


14

J'ai besoin d'accéder à l'IEEE xplore, mais je n'ai pas le droit de télécharger l'institut.

Je peux me connecter au serveur de l'institut via ssh,

Alors, comment puis-je accéder à IEEE xplore via le serveur de l'institut via ssh?

J'ai cherché des solutions, une réponse:

ssh -L 8080:localhost:80 user@remoteserver

puis il dit:

Maintenant, pointez votre navigateur local sur localhost: 8080. Il devrait être transmis à localhost: 80 sur le serveur distant. ### Mais je ne sais toujours pas comment configurer mon ordinateur portable, je suis en utilisant Chrome.

J'apprécie beaucoup votre aide!


Réponses:


23

Première méthode:

Lancer un tunnel SSH

Pour lancer votre tunnel SSH, ouvrez simplement le terminal et connectez-vous à votre serveur distant via SSH avec les drapeaux suivants:

ssh -D 8080 -C -N username@example.com

Naviguez sur le Web avec votre tunnel SSH (Chrome)

Maintenant, commençons à naviguer sur le Web en utilisant notre nouveau tunnel SSH.

  • Ouvrez Google Chrome
  • Sélectionnez l'icône de clé en haut à droite
  • Sélectionnez «Paramètres»
  • Sélectionnez «Afficher les paramètres avancés…»
  • Sélectionnez «Modifier les paramètres du proxy…»
  • Sélectionnez 'SOCKS Proxy'
  • Entrez '127.0.0.1 ′
  • Entrez le port '8080'
  • Enregistrez les modifications en sélectionnant «OK»

Recherchez «mon ip» sur Google et regardez maintenant quelle est votre adresse IP.

Cela lancera notre tunnel SSH sur le port 8080 et acheminera tout le trafic (en toute sécurité) via le serveur sur example.com.

Sortie du tunnel SSH

Pour quitter le tunnel SSH, désactivez simplement le proxy SOCKS dans votre navigateur.

la source

Deuxième méthode:

Vous pouvez le faire facilement en utilisant Shellinabox

Assurez-vous que vous avez vérifié le référentiel d'univers

À installer

 $ sudo apt-get install openssl shellinabox

Configuration de Shellinabox

Par défaut, shellinaboxd écoute sur le port TCP 4200 sur localhost. Pendant l'installation, un nouveau certificat SSL auto-signé créé automatiquement sous «/ var / lib / shellinabox» pour utiliser le protocole 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: remplacez l'ip 172.16.25.125 par la vôtre

Démarrage de Shellinabox

Une fois la configuration terminée, vous pouvez démarrer le service

$ sudo service shellinaboxd start

Vérifier Shellinabox

Vérifions maintenant si Shellinabox fonctionne sur le port 4200 en utilisant la commande «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

Ouvrez maintenant votre navigateur Web et accédez à 'https: // "Votre-adresse IP: 6175"'. Vous devriez pouvoir voir un terminal SSH basé sur le Web. Connectez-vous en utilisant votre nom d'utilisateur et votre mot de passe et vous devriez recevoir votre invite shell.

entrez la description de l'image ici

la source


@maythus, merci beaucoup, vos réponses sont excellentes. Je résous mon problème avec la solution 1.
ulyssis2

@ ulyssis2 Vous êtes le bienvenu mon pote
Maythux

@kimerseen Vous êtes le bienvenu ami
Maythux

@ Maythux pouvez-vous m'aider avec ma question askubuntu.com/questions/987626/shell-in-a-box-session-closed
MiHawk

2

L'exemple que vous avez fourni est correct, mais quelque peu trompeur. Cela devrait fonctionner:

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

Par exemple, considérons une boîte distante exécutant ssh qui peut accéder à cette page Web, que je veux voir localement:

http://192.168.1.2/index.html

Pour créer un tunnel sur ma boîte locale qui me permet d'accéder à cette page distante, je lance localement:

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

Et puis, dans un navigateur Web, je visite:

http: // localhost: 8080 / index.html

Si vous devez (ou souhaitez) omettre le spécificateur de port, vous devrez ouvrir le tunnel en tant que root, car 80 est un port "privilégié" (<1024):

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

Ensuite, vous pouvez simplement visiter localement:

http: //localhost/index.html

Aucune autre configuration n'est requise.

Soit dit en passant, cela ne fonctionne que pour un seul hôte que vous souhaitez voir localement. Si vous avez besoin d'en voir plus, vous devez soit ouvrir plus de tunnels sur d'autres ports, soit examiner les autres solutions que le tunnel demande pour tous les hôtes distants via un proxy.

Il s'agit de la troisième utilisation du -Lcommutateur à partir de 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.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.