-
Notifications
You must be signed in to change notification settings - Fork 17
feat: Add VNC console access command #631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mgajda
wants to merge
13
commits into
UpCloudLtd:main
Choose a base branch
from
mgajda:feat/server-vnc-console
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implements `upctl server console` command to connect to server VNC console. Features: - Auto-detects TigerVNC, RealVNC, or macOS Screen Sharing - Secure password handling via temporary files (never exposed in CLI args) - Supports --fullscreen and --view-only flags - --viewer flag to specify preferred VNC client - Cleanup on interrupt (Ctrl+C) Example usage: upctl server console myserver upctl server console 00038afc-e100-4e91-9d28-b9c463e7e9b4 --fullscreen
Adds support for: - Remmina (Linux/GNOME) - prompts for password interactively - macOS Screen Sharing (built-in) - prompts for password interactively TigerVNC and RealVNC support secure password files. Remmina and macOS Screen Sharing will prompt users to enter the password displayed by upctl. Note: Windows VNC clients (UltraVNC, TightVNC) do not support secure password files and would expose passwords in command line arguments, so they are not included. Windows users should use TigerVNC.
Password is now only displayed when explicitly requested with --show-password. When using Remmina or macOS Screen Sharing (which require manual password entry), the tool will prompt the user to use --show-password flag. This prevents accidental password exposure while still supporting clients that need manual password entry.
Client detection now prefers platform-native clients: - macOS: Built-in Screen Sharing → TigerVNC → RealVNC - Linux: Remmina → TigerVNC → RealVNC - Windows: TigerVNC → RealVNC This provides better UX by defaulting to clients users are more likely to have installed on each platform.
When no VNC client is found, provide actionable installation commands: - Ubuntu/Debian: apt-get install remmina-plugin-vnc tigervnc-viewer - Fedora/RHEL/CentOS: dnf install remmina tigervnc - Arch: pacman -S remmina tigervnc - macOS: Note about built-in Screen Sharing, or brew install - Windows: Download links for TigerVNC and RealVNC Includes Linux distro detection via /etc/os-release and comprehensive fallback for generic Linux with commands for all major distributions.
- Remmina now supports --enable-fullscreen flag for fullscreen mode - Remmina now supports --set-option ViewOnly=1 for view-only mode - macOS Screen Sharing does not support these flags (noted in comments) - TigerVNC and RealVNC already had proper support
Testing revealed: - Remmina supports --enable-fullscreen - Remmina does NOT support view-only flag (no CLI option) - macOS Screen Sharing does not support fullscreen/viewonly - TigerVNC and RealVNC support both flags Updated flag descriptions and removed invalid --set-option usage
…nd RealVNC VNC clients expect host::port format for explicit port numbers, not host:port. The single colon format is for display numbers (e.g., :0, :1). This fixes connection issues when VNC runs on non-standard ports like 27132.
Use github.com/KarpelesLab/vncpasswd library for correct VNC password file encryption using DES with bit-reversed keys as per VNC specification. VNC authentication now works successfully - tested with TigerVNC connecting to UpCloud VNC console and verified with pixel format negotiation. Changes: - Added vncpasswd library dependency (github.com/KarpelesLab/vncpasswd) - Use vncpasswd.Crypt() for proper DES encryption - VNC clients (TigerVNC, RealVNC) now authenticate automatically - Tested successful connection with pixel format negotiation - Removed previous interactive password entry fallback Sources: - https://github.com/KarpelesLab/vncpasswd - https://www.vidarholen.net/contents/junk/vnc.html
Add explicit documentation that VNC console works on: - macOS (built-in Screen Sharing, TigerVNC, RealVNC) - Linux (Remmina, TigerVNC, RealVNC) - WSL (Linux VNC clients work via WSLg) - Windows native (TigerVNC, RealVNC) Changes: - Updated command description to list all supported platforms - Added WSL-specific installation comments - Clarified Windows native client download links - Made platform support more visible to users
Remove tmp/ directory and markdown summary files that were accidentally committed in previous commit.
Contributor
Author
|
To securely pass the password to VNC client I added a library import. |
Prevent temporary files from being accidentally committed.
The .gitignore file was accidentally modified, changing .release_notes to .release_notestmp/ which was incorrect. Reverting to upstream version.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements
upctl server consoleto connect to server VNC console.Features:
--fullscreen,--view-only, and--viewerflagsExample: