Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sshtunnel — SSH टनल्स को रिमोट सर्वर पर। | Kitploit
उपकरण/GitHubGitHub/pahaz/sshtunnel
सामान्य उपयोगिताएँनेटवर्क सुरक्षाउपयोगिताएँ और फ्रेमवर्क
GitHubpahaz/sshtunnel

sshtunnel

SSH टनल्स को रिमोट सर्वर पर।

रिपॉजिटरी देखें
1.3k20211 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

|CircleCI| |AppVeyor| |readthedocs| |coveralls| |version|

|pyversions| |license|

लेखक: Pahaz_

रिपॉजिटरी: https://github.com/pahaz/sshtunnel/

प्रेरित: https://github.com/jmagnusson/bgtunnel, जो विंडोज पर काम नहीं करता।

यह भी देखें: https://github.com/paramiko/paramiko/blob/master/demos/forward.py

आवश्यकताएँ

  • paramiko_

स्थापना

sshtunnel_ PyPI पर उपलब्ध है, बस चलाएँ:

::

root@kitploit:~
pip install sshtunnel

या ::

root@kitploit:~
easy_install sshtunnel

या ::

root@kitploit:~
conda install -c conda-forge sshtunnel

इसे आपके वातावरण में स्थापित करने के लिए।

स्रोत से स्थापित करने के लिए, रिपॉजिटरी <https://github.com/pahaz/sshtunnel>_ को क्लोन करें और चलाएँ::

root@kitploit:~
python setup.py install

पैकेज का परीक्षण

परीक्षण चलाने के लिए आपको पहले tox <https://testrun.org/tox/latest/>_ की आवश्यकता है और चलाएँ::

root@kitploit:~
python setup.py test

उपयोग परिदृश्य

sshtunnel उपयोगी होने वाला एक विशिष्ट परिदृश्य नीचे दिए गए चित्र में दर्शाया गया है। उपयोगकर्ता को किसी दूरस्थ सर्वर के पोर्ट (जैसे 8080) से कनेक्ट करने की आवश्यकता हो सकती है जहां केवल SSH पोर्ट (आमतौर पर पोर्ट 22) पहुंच योग्य है। ::

root@kitploit:~
----------------------------------------------------------------------

                            |
-------------+              |    +----------+
    LOCAL    |              |    |  REMOTE  | :22 SSH
    CLIENT   | <== SSH ========> |  SERVER  | :8080 web service
-------------+              |    +----------+
                            |
                         FIREWALL (only port 22 is open)

----------------------------------------------------------------------

चित्र 1: SSH टनल के माध्यम से फ़ायरवॉल द्वारा अवरुद्ध सेवा से कैसे कनेक्ट करें।

यदि SSH सर्वर द्वारा अनुमति दी गई हो, तो एक निजी सर्वर (REMOTE SERVER के दृष्टिकोण से) तक पहुंचना भी संभव है जो बाहर से (LOCAL CLIENT के दृष्टिकोण से) सीधे दिखाई नहीं देता। ::

root@kitploit:~
----------------------------------------------------------------------

                            |
-------------+              |    +----------+               +---------
    LOCAL    |              |    |  REMOTE  |               | PRIVATE
    CLIENT   | <== SSH ========> |  SERVER  | <== local ==> | SERVER
-------------+              |    +----------+               +---------
                            |
                         FIREWALL (only port 443 is open)

----------------------------------------------------------------------

चित्र 2: SSH टनल के माध्यम से PRIVATE SERVER से कैसे कनेक्ट करें।

उपयोग उदाहरण

API या तो टनल को आरंभ करने और उसे शुरू करने, या with संदर्भ का उपयोग करने की अनुमति देता है, जो टनल को शुरू करने और रोकने का ध्यान रखेगा:

उदाहरण 1

उपरोक्त चित्र 1 के अनुरूप कोड, यह मानते हुए कि दूरस्थ सर्वर का पता pahaz.urfuclub.ru है, पासवर्ड प्रमाणीकरण और यादृच्छिक रूप से निर्धारित स्थानीय बाइंड पोर्ट।

.. code-block:: python

root@kitploit:~
from sshtunnel import SSHTunnelForwarder

server = SSHTunnelForwarder(
    'alfa.8iq.dev',
    ssh_username="pahaz",
    ssh_password="secret",
    remote_bind_address=('127.0.0.1', 8080)
)

server.start()

print(server.local_bind_port)  # show assigned local port
# work with `SECRET SERVICE` through `server.local_bind_port`.

server.stop()

उदाहरण 2

एक निजी सर्वर पर पोर्ट फ़ॉरवर्डिंग का उदाहरण जो सीधे पहुंच योग्य नहीं है, पासवर्ड-संरक्षित pkey प्रमाणीकरण मानते हुए, दूरस्थ सर्वर की SSH सेवा पोर्ट 443 पर सुन रही है और वह पोर्ट फ़ायरवॉल में खुला है (चित्र 2):

.. code-block:: python

root@kitploit:~
import paramiko
import sshtunnel

with sshtunnel.open_tunnel(
    (REMOTE_SERVER_IP, 443),
    ssh_username="",
    ssh_pkey="/var/ssh/rsa_key",
    ssh_private_key_password="secret",
    remote_bind_address=(PRIVATE_SERVER_IP, 22),
    local_bind_address=('0.0.0.0', 10022)
) as tunnel:
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect('127.0.0.1', 10022)
    # do some operations with client session
    client.close()

print('FINISH!')

उदाहरण 3

Vagrant MySQL स्थानीय पोर्ट के लिए पोर्ट फ़ॉरवर्डिंग का उदाहरण:

.. code-block:: python

root@kitploit:~
from sshtunnel import open_tunnel
from time import sleep

with open_tunnel(
    ('localhost', 2222),
    ssh_username="vagrant",
    ssh_password="vagrant",
    remote_bind_address=('127.0.0.1', 3306)
) as server:

    print(server.local_bind_port)
    while True:
        # press Ctrl-C for stopping
        sleep(1)

print('FINISH!')

या बस CLI का उपयोग करके:

.. code-block:: console

root@kitploit:~
(bash)$ python -m sshtunnel -U vagrant -P vagrant -L :3306 -R 127.0.0.1:3306 -p 2222 localhost

उदाहरण 4

दो टनलों पर कूदते हुए SSH सत्र खोलना। SSH परिवहन और टनल डेमॉनाइज़ किए जाएंगे, जो बंद करने के समय कनेक्शन के रुकने की प्रतीक्षा नहीं करेंगे।

.. code-block:: python

root@kitploit:~
import sshtunnel
from paramiko import SSHClient


with sshtunnel.open_tunnel(
    ssh_address_or_host=('GW1_ip', 20022),
    remote_bind_address=('GW2_ip', 22),
) as tunnel1:
    print('Connection to tunnel1 (GW1_ip:GW1_port) OK...')
    with sshtunnel.open_tunnel(
        ssh_address_or_host=('localhost', tunnel1.local_bind_port),
        remote_bind_address=('target_ip', 22),
        ssh_username='GW2_user',
        ssh_password='GW2_pwd',
    ) as tunnel2:
        print('Connection to tunnel2 (GW2_ip:GW2_port) OK...')
        with SSHClient() as ssh:
            ssh.connect('localhost',
                port=tunnel2.local_bind_port,
                username='target_user',
                password='target_pwd',
            )
            ssh.exec_command(...)

CLI उपयोग

::

root@kitploit:~
$ sshtunnel --help
usage: sshtunnel [-h] [-U SSH_USERNAME] [-p SSH_PORT] [-P SSH_PASSWORD] -R
                 IP:PORT [IP:PORT ...] [-L [IP:PORT ...]] [-k SSH_HOST_KEY]
                 [-K KEY_FILE] [-S KEY_PASSWORD] [-t] [-v] [-V] [-x IP:PORT]
                 [-c SSH_CONFIG_FILE] [-z] [-n] [-d [FOLDER ...]]
                 ssh_address

Pure python ssh tunnel utils
Version 0.4.0

positional arguments:
  ssh_address           SSH server IP address (GW for SSH tunnels)
                        set with "-- ssh_address" if immediately after -R or -L

options:
  -h, --help            show this help message and exit
  -U SSH_USERNAME, --username SSH_USERNAME
                        SSH server account username
  -p SSH_PORT, --server_port SSH_PORT
                        SSH server TCP port (default: 22)
  -P SSH_PASSWORD, --password SSH_PASSWORD
                        SSH server account password
  -R IP:PORT [IP:PORT ...], --remote_bind_address IP:PORT [IP:PORT ...]
                        Remote bind address sequence: ip_1:port_1 ip_2:port_2 ... ip_n:port_n
                        Equivalent to ssh -Lxxxx:IP_ADDRESS:PORT
                        If port is omitted, defaults to 22.
                        Example: -R 10.10.10.10: 10.10.10.10:5900
  -L [IP:PORT ...], --local_bind_address [IP:PORT ...]
                        Local bind address sequence: ip_1:port_1 ip_2:port_2 ... ip_n:port_n
                        Elements may also be valid UNIX socket domains:
                        /tmp/foo.sock /tmp/bar.sock ... /tmp/baz.sock
                        Equivalent to ssh -LPORT:xxxxxxxxx:xxxx, being the local IP address optional.
                        By default it will listen in all interfaces (0.0.0.0) and choose a random port.
                        Example: -L :40000
  -k SSH_HOST_KEY, --ssh_host_key SSH_HOST_KEY
                        Gateway's host key
  -K KEY_FILE, --private_key_file KEY_FILE
                        RSA/DSS/ECDSA private key file
  -S KEY_PASSWORD, --private_key_password KEY_PASSWORD
                        RSA/DSS/ECDSA private key password
  -t, --threaded        Allow concurrent connections to each tunnel
  -v, --verbose         Increase output verbosity (default: ERROR)
  -V, --version         Show version number and quit
  -x IP:PORT, --proxy IP:PORT
                        IP and port of SSH proxy to destination
  -c SSH_CONFIG_FILE, --config SSH_CONFIG_FILE
                        SSH configuration file, defaults to ~/.ssh/config
  -z, --compress        Request server for compression over SSH transport
  -n, --noagent         Disable looking for keys from an SSH agent
  -d [FOLDER ...], --host_pkey_directories [FOLDER ...]
                        List of directories where SSH pkeys (in the format `id_*`) may be found

.. _Pahaz: https://github.com/pahaz .. _sshtunnel: https://pypi.python.org/pypi/sshtunnel .. paramiko: http://www.paramiko.org/ .. |CircleCI| image:: https://circleci.com/gh/pahaz/sshtunnel.svg?style=svg :target: https://circleci.com/gh/pahaz/sshtunnel .. |AppVeyor| image:: https://ci.appveyor.com/api/projects/status/oxg1vx2ycmnw3xr9?svg=true&passingText=Windows%20-%20OK&failingText=Windows%20-%20Fail :target: https://ci.appveyor.com/project/pahaz/sshtunnel .. |readthedocs| image:: https://readthedocs.org/projects/sshtunnel/badge/?version=latest :target: http://sshtunnel.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. |coveralls| image:: https://coveralls.io/repos/github/pahaz/sshtunnel/badge.svg?branch=master :target: https://coveralls.io/github/pahaz/sshtunnel?branch=master .. |pyversions| image:: https://img.shields.io/pypi/pyversions/sshtunnel.svg .. |version| image:: https://img.shields.io/pypi/v/sshtunnel.svg :target: sshtunnel .. |license| image:: https://img.shields.io/pypi/l/sshtunnel.svg :target: https://github.com/pahaz/sshtunnel/blob/master/LICENSE

टूल डाउनलोड करें