feat: add remote shell (ssh/cmd) #39

Open
opened 2026-02-20 22:20:50 -05:00 by deekerman · 13 comments
Owner

Originally created by @bingryan on GitHub (May 29, 2021).

Sometimes we only need a remote shell, can this function be added?

Originally created by @bingryan on GitHub (May 29, 2021). Sometimes we only need a remote shell, can this function be added?
Author
Owner

@rustdesk commented on GitHub (May 29, 2021):

port forward

@rustdesk commented on GitHub (May 29, 2021): port forward
Author
Owner

@andrejpan commented on GitHub (Nov 9, 2023):

Still no way to have ssh access, right?

@andrejpan commented on GitHub (Nov 9, 2023): Still no way to have ssh access, right?
Author
Owner

@PrieserMax commented on GitHub (Jan 4, 2024):

Sadly there is still no way.
Would love to be able to install it on systems without GUI (desktop-manager) and would like to be able to connect via SSH.

@PrieserMax commented on GitHub (Jan 4, 2024): Sadly there is still no way. Would love to be able to install it on systems without GUI (desktop-manager) and would like to be able to connect via SSH.
Author
Owner

@yixuan1912 commented on GitHub (Apr 18, 2024):

Sadly there is still no way. Would love to be able to install it on systems without GUI (desktop-manager) and would like to be able to connect via SSH.

you need frp

@yixuan1912 commented on GitHub (Apr 18, 2024): > Sadly there is still no way. Would love to be able to install it on systems without GUI (desktop-manager) and would like to be able to connect via SSH. you need frp
Author
Owner

@phr34k commented on GitHub (Jul 13, 2024):

This might be semi-related, I'm also trying to use rustdesk to expose ssh due to contrainted network. Due to personal preferences I'd rather have a rustdesk id rather than ngrok/frp. This outlines some code for a ssh proxy command which may be a small step forward: https://github.com/rustdesk/rustdesk/issues/8702

@phr34k commented on GitHub (Jul 13, 2024): This might be semi-related, I'm also trying to use rustdesk to expose ssh due to contrainted network. Due to personal preferences I'd rather have a rustdesk id rather than ngrok/frp. This outlines some code for a ssh proxy command which may be a small step forward: https://github.com/rustdesk/rustdesk/issues/8702
Author
Owner

@darren2046 commented on GitHub (Jul 14, 2024):

I don't want to use ssh. I just want Rustdesk can handle everything.

@darren2046 commented on GitHub (Jul 14, 2024): I don't want to use ssh. I just want Rustdesk can handle everything.
Author
Owner

@PrieserMax commented on GitHub (Jul 16, 2024):

Sadly there is still no way. Would love to be able to install it on systems without GUI (desktop-manager) and would like to be able to connect via SSH.

you need frp

I don't want to custom script something etc. Sad, that there is no standard implementation into Rustdesk (yet?)

@PrieserMax commented on GitHub (Jul 16, 2024): > > Sadly there is still no way. Would love to be able to install it on systems without GUI (desktop-manager) and would like to be able to connect via SSH. > > you need frp I don't want to custom script something etc. Sad, that there is no standard implementation into Rustdesk (yet?)
Author
Owner

@rustdesk commented on GitHub (Oct 28, 2024):

If you really want this feature, please fund this issue.

proposal:

Upvote & Fund

  • We're using Polar.sh so you can upvote and help fund this issue.
  • We receive the funding once the issue is completed & confirmed by you.
  • Thank you in advance for helping prioritize & fund our backlog.
Fund with Polar
@rustdesk commented on GitHub (Oct 28, 2024): If you really want this feature, please fund this issue. proposal: - [ ] maintain our own cmd session rather ssh session, meshcentral / tailscale / dwservice does so, https://www.dwservice.net/en/applications.html#shell - [ ] https://pub.dev/packages/xterm (check if there is better one), or even use webview_flutter to reuse meshcentral terminal or novnc terminal. - [ ] Windows first, then Linux / Mac <!-- POLAR PLEDGE BADGE START --> ## Upvote & Fund - We're using [Polar.sh](https://polar.sh/rustdesk) so you can upvote and help fund this issue. - We receive the funding once the issue is completed & confirmed by you. - Thank you in advance for helping prioritize & fund our backlog. <a href="https://polar.sh/rustdesk/rustdesk/issues/49"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://polar.sh/api/github/rustdesk/rustdesk/issues/49/pledge.svg?darkmode=1"> <img alt="Fund with Polar" src="https://polar.sh/api/github/rustdesk/rustdesk/issues/49/pledge.svg"> </picture> </a> <!-- POLAR PLEDGE BADGE END -->
Author
Owner

@LeChrisS commented on GitHub (Jan 2, 2025):

I would love to have this so I funded you as RustDesk is awesome

@LeChrisS commented on GitHub (Jan 2, 2025): I would love to have this so I funded you as RustDesk is awesome
Author
Owner

@rustdesk commented on GitHub (Feb 19, 2025):

MeshCentral seems having an implementation, meshcentral terminal does not depends on ssh, it maintains session itself. https://pub.dev/packages/xterm (check if there is better one), or even use webview_flutter to reuse meshcentral terminal or novnc terminal.

@rustdesk commented on GitHub (Feb 19, 2025): MeshCentral seems having an implementation, meshcentral terminal does not depends on ssh, it maintains session itself. https://pub.dev/packages/xterm (check if there is better one), or even use webview_flutter to reuse meshcentral terminal or novnc terminal.
Author
Owner

@LeChrisS commented on GitHub (Feb 19, 2025):

I tried MeshCentral as well but would love to have only one tool in the long run - therefore I hope its possible for RustDesk to integrate a similar technology

@LeChrisS commented on GitHub (Feb 19, 2025): I tried MeshCentral as well but would love to have only one tool in the long run - therefore I hope its possible for RustDesk to integrate a similar technology
Author
Owner

@DanHolli commented on GitHub (Apr 2, 2025):

Not a perfect work around, but using TCP tunneling I was able to do 'ssh [user]@127.0.0.1 -p [local port]' and connect but it disconnects after several seconds of no use

A quick implementation could invoke an automatic TCP tunnel, maintain the launch the default teminal passing along the above command (or similar) to connect and maintain the TCP tunnel until said terminal window is closed.

For security you'd also want to deny any non-localhost connections to the TCP tunnel

I'm not sure how this would be done on the Linux or MacOS side but on Windows you should be able invoke 'cmd /c [ssh command above]' and close the tunnel when the command completes

Not sure if it's really helpful, I'm just a scripter 😅

@DanHolli commented on GitHub (Apr 2, 2025): Not a perfect work around, but using TCP tunneling I was able to do 'ssh [user]@127.0.0.1 -p [local port]' and connect but it disconnects after several seconds of no use A quick implementation could invoke an automatic TCP tunnel, maintain the launch the default teminal passing along the above command (or similar) to connect and maintain the TCP tunnel until said terminal window is closed. For security you'd also want to deny any non-localhost connections to the TCP tunnel I'm not sure how this would be done on the Linux or MacOS side but on Windows you should be able invoke 'cmd /c [ssh command above]' and close the tunnel when the command completes Not sure if it's really helpful, I'm just a scripter 😅
Author
Owner

@T-256 commented on GitHub (Jun 26, 2025):

Related https://github.com/rustdesk/rustdesk/discussions/9311

@T-256 commented on GitHub (Jun 26, 2025): Related https://github.com/rustdesk/rustdesk/discussions/9311
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/rustdesk-rustdesk#39
No description provided.