Keycyte PAM 3.2 · Deployment Guide
Connection Paths
Users reach target systems through Keycyte PAM in one of three ways. In every case the user authenticates to Keycyte PAM, Keycyte PAM checks the user’s roles and policies, and the connection to the target system is opened by a Keycyte PAM component with the credential from the Password Vault.
| Path | User side | Entry point | Component that connects to the target |
|---|---|---|---|
| Browser session (graphical or terminal) | Web browser, Client Panel | PAM server, 443/tcp (HTTPS and WebSocket) | Gateway (guacd) |
| Browser SSH terminal and SFTP | Web browser, Client Panel | PAM server, 443/tcp (HTTPS and WebSocket) | SSH proxy |
| Native SSH client | Any SSH client | SSH proxy, 2222/tcp | SSH proxy |
| Native RDP client | RDP client with an .rdp file | RDP proxy, 3389/tcp | RDP proxy |
Browser Sessions
Browser sessions need no client software. The user opens a server in the Client Panel and the session runs in a browser tab.
- The browser connects to the PAM server on port 443 over HTTPS.
- The user selects a server and an account. The PAM server checks the roles, MFA and approval requirements.
- The PAM server opens a WebSocket from the browser and connects to the target system:
- For RDP, VNC, Telnet, Kubernetes, RemoteApp, web application and 3rd party application sessions, the PAM server asks the gateway (guacd, port 4822 on the internal network) to connect to the target. The gateway connects to the target system on the port configured for the server.
- For SSH terminal and SFTP sessions, the PAM server relays the WebSocket to the SSH proxy (port 8443 on the internal network). The SSH proxy connects to the target system over SSH.
- The PAM server records the session if the server role requires it.
Web application and 3rd party application sessions run on a jump server: the gateway opens an RDP session to the jump server that is configured on Settings > Connection, and the application starts there.
Native SSH Clients
Users who prefer their own SSH client connect to the SSH proxy on port 2222. The Client Panel shows the command to copy, in this form:
ssh <vault_id>@<server_id>@<pam_user>@pam.example.com -p 2222
- The SSH client connects to the SSH proxy on port 2222 and authenticates the user.
- The SSH proxy asks the PAM server, over its internal API, whether the user may use the requested account on the requested server. The request is signed with the SSH proxy’s access key (see Service Access Keys).
- The SSH proxy connects to the target system with the vault credential and records the session if required.
Native RDP Clients
Native RDP access requires the RDP proxy (see Components).
- The user selects a server and an account in the Client Panel and chooses to connect with a native RDP client.
- The PAM server pushes a single-use connection token and the credentials to the RDP proxy over the internal network, signed with the RDP proxy access key.
- The user receives an
.rdpfile and a single-use password. The.rdpfile points to the public address of the RDP proxy, which is set inKEYCYTE_RDP_PROXY_PUBLIC_ADDRESS. - The RDP client connects to the RDP proxy on port 3389. The RDP proxy validates the token and opens the RDP connection to the target system.
The token expires after 120 seconds by default (KEYCYTE_RDP_LAUNCH_TOKEN_TTL_SECS). If the RDP proxy URL, public address or access key is not configured, native RDP launch is disabled.
Service-to-Service Traffic
Besides user connections, the components talk to each other on the internal network:
| From | To | Purpose |
|---|---|---|
| SSH proxy, RADIUS server, TACACS+ server | PAM server (https://pam) | Authentication, authorization, configuration and session events, signed with access keys. |
| PAM server | SSH proxy | Session control (for example terminating a session), signed with the PAM access key. |
| PAM server | RDP proxy | Pushing connection tokens and credentials for native RDP launch. |
| PAM server | Password Manager | Password change and verification on target systems. |
| PAM server, SSH proxy | PostgreSQL | Database access. |