Giter Club home page Giter Club logo

rdpoverssh's Introduction

logo

RDPoverSSH

A peer-to-peer Windows Remote Desktop solution using SSH.

About

RDPoverSSH uses SSH tunnels with certificate authentication to map a port on the local machine to any port on the remote machine. It is specifically designed for remote control with Microsoft's Remote Desktop Protocol, although any port mapping may be configured.

It is especially useful in an environment where the target machine is behind a NAT router or firewall that is under someone else's control. Using reverse SSH tunnels, the target machine can initiate the connection outwards. Once the tunnel is open and a port is mapped to the target machine, it is available to receive connections without any port forwarding required on the target side.

For some background on how reverse SSH tunnels work, check out the several great answers on this StackOverflow question. https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work

Note that either direct WAN access or router port forwarding is required on at least one side of the connection. RDPoverSSH will not work if the tunnel target's port is not publicly accessible.

Download

Download the latest release here.

How to Use

See the wiki for full instructions.

Screenshots

RDP over Normal Tunnel

Connection Source

image

Connection Target

image

RDP over Reverse Tunnel

Connection Source

image

Connection Target

image

Condensed UI

image

Dark Mode

image

Requirements

Requires Windows 10 or later.

Attribution

Icon made by Prosymbols Premium from www.flaticon.com.

rdpoverssh's People

Contributors

dependabot[bot] avatar micahmo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rdpoverssh's Issues

Multiple issues with key files, maybe wrong username used

Hi,

when creating a server for accepting a reverse tunnel, the files C:\ProgramData\ssh\ssh_rdp_over_ssh_key, C:\ProgramData\ssh\ssh_rdp_over_ssh_key.pub and C:\ProgramData\ssh\administrators_authorized_keys are all created as existing but empty 0KB files.
If I try to use the "Show SSH Server Key" GUI function, an empty window is shown.

Also, the permissions for the file C:\ProgramData\ssh\administrators_authorized_keys are too permissive. I needed to run icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F" on it (see this documentation).

Same problem on the client that initiates the tunnel:
The permissions of the file C:\ProgramData\ssh\ssh_rdp_over_ssh_1_key are too permissive.
Also, key files for the Windows native SSH client need a line feed at the end, which might not get copy&pasted (see here).

Despite manually fixing all of this, I'm still stuck at "Permission denied (publickey)." on the client side.
I can connect manually. I have verified that the command ssh -i C:\ProgramData\ssh\ssh_rdp_over_ssh_1_key -p [Same port as in GUI] [Windows Username on server]@[Same host as in GUI] works without a password prompt.
My current suspicion is that RDPoverSSH uses the wrong username, because that's the only part I can't set in the GUI.
The Windows username of the user running RDPoverSSH is different on both systems.
When using ssh without the "[Username of server]@" part, the connection fails because it ssh tries to use the current logged in user as the default. Since I have never told RDPoverSSH the username used on the system that accepts the tunnel, it can't know the correct one.

Error RDPoverSSH.Service encountered an error: System.InvalidOperationException: Service RDPoverSSH.Service.Worker was not found on computer '.'.

I install it on Windows 10 pro (64bit) ,
and when started I got error
RDPoverSSH.Service encountered an error: System.InvalidOperationException: Service RDPoverSSH.Service.Worker was not found on computer '.'. at System.ServiceProcess.ServiceController.GenerateNames() at System.ServiceProcess.ServiceController.get_ServiceName() at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess) at System.ServiceProcess.ServiceController.GenerateStatus() at System.ServiceProcess.ServiceController.get_Status() at PeterKottas.DotNetCore.WindowsService.ServiceRunner1.Uninstall(HostConfiguration1 config, ServiceController sc) at PeterKottas.DotNetCore.WindowsService.ServiceRunner1.<>c.<ConfigureService>b__11_3(ServiceController sc, HostConfiguration1 cfg) at PeterKottas.DotNetCore.WindowsService.ServiceRunner1.UsingServiceController(HostConfiguration1 config, Action2 action) at PeterKottas.DotNetCore.WindowsService.ServiceRunner1.ConfigureService(HostConfiguration1 config) at PeterKottas.DotNetCore.WindowsService.ServiceRunner1.Run(Action`1 runAction)

SSH server is running, I can make connection to that machine using SSH. Where can be a problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.