Skip to content
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

Session Manager behaviour with UDS listening sessions #407

Closed
yghorbal opened this issue Mar 11, 2024 · 4 comments
Closed

Session Manager behaviour with UDS listening sessions #407

yghorbal opened this issue Mar 11, 2024 · 4 comments

Comments

@yghorbal
Copy link

Using macOS Viewer Version 3.1.1 (20240221) and RHEL 8.9 Server (Xvnc) 64-bit v3.1.1 (build 20240127) I started a session on the server with -uds option. The session is correctly created:

$ /opt/TurboVNC/bin/vncserver -uds -wm xfce

Desktop 'TurboVNC: youssef:1 (djo)' started on display youssef:1
Listening on Unix domain socket /home/djo/.vnc/youssef_1.uds

Starting applications specified in /opt/TurboVNC/bin/xstartup.turbovnc
Log file is /home/djo/.vnc/youssef:1.log

It's correctly listed on the server (with a weird WARNING though!)

$ /opt/TurboVNC/bin/vncserver -list

TurboVNC sessions:

X DISPLAY #	PROCESS ID	NOVNC PROCESS ID

WARNING: youssef:1 is taken because abstract socket \0/tmp/.X11-unix/X1 is in use.
:1		14877

It's also correctly displayed in the Viewer when connected to the server's FQDN name:

Screenshot 2024-03-12 at 00 05 20

But when I click "connect". I get this error message:

Screenshot 2024-03-12 at 00 06 09

When starting the session without -uds, everything works as expected.

Does the Session Manager supposed to work with sessions listening on Unix Domain Sockets?

@dcommander
Copy link
Member

It definitely does not work at the moment. I'll scope it out and see if it is something I can implement easily or whether it will require extensive modifications.

@yghorbal
Copy link
Author

yghorbal commented Mar 12, 2024

Thank you for the swift reply! I don't know if it's relevant, but the following works:

  • having ssh key auth setup and working with server
  • start an UDS session on server
  • using "my_server_fqdn::/path/to/socket" in the Viewer

=> this shows the VNC auth window and access can proceed. If I understand correctly, in this case the session manager is not involved.

@dcommander
Copy link
Member

Yes, you can use Unix domain sockets without the session manager. The session manager itself, however, still assumes that the session will be listening on a TCP port corresponding to its X display.

@dcommander
Copy link
Member

In order to successfully generate an OTP for and connect to a TurboVNC session listening on a Unix domain socket, the TurboVNC Session Manager would need to know both the X display number of the session and the UDS on which it is listening. That would require extending the session manager protocol. Also, since Unix domain socket support requires an external SSH client, the session manager would need to be extended to handle external SSH clients. Otherwise, the built-in SSH client would be used for the session manager connection, and the external SSH client would be used for the RFB connection. I have added UDS support as a sub-feature of #148.

I did at least fix the warning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants