> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/release-notes/enterprise/keeper-connection-manager/kcm-version-2.17.0.md).

# KCM Version 2.17.0

## New Features

* Key Events in KCM Session Records can now be viewed within KCM’s session recording player
  * More info [here](/keeper-connection-manager/using-keeper-connection-manager/session-recording.md#key-events-in-session-recordings)
* KCM's terminal emulator now supports Mac-style keyboard shortcuts
  * The terminal emulator used by KCM for text-based protocols like SSH has historically used only Ctrl+Shift+V as the shortcut for pasting clipboard contents using the keyboard. The terminal emulator now additionally supports Cmd+V for ease of use on Macs, and will also ignore attempts to copy using Ctrl+Shift+C or Cmd+C (copying within the terminal emulator always happens automatically upon selecting text)
* New Environment Variable: [`SSL_EXTERNAL_PORT`](/keeper-connection-manager/installation/docker-compose-install/keeper-guacamole.md#ssl)
  * To validate requests received from a SAML IdP, KCM needs to know the user-facing TCP port used to access KCM. If that port differs from the standard HTTPS port, `SSL_EXTERNAL_PORT` can be specified to inform KCM that the port is different
  * Resolves issue where SAML extension does not work when KCM is configured to use a custom HTTPS port

## Improvements & Bug Fixes

* TOTP can now be used with SAML
  * SAML and TOTP historically could not be used together with KCM as both contain anti-replay defenses that would conflict with each other. These conflicts have been resolved such that both can be used at the same time without sacrificing the security provided by those anti-replay defenses.
* KCM's Keeper Secret Manager Integration now supports reading private keys from PAM User Records
  * PAM User Record is a recently introduced PAM Record Type that is used in [Keeper Rotation](broken://spaces/-MJXOXEifAmpyvNVL1to/pages/dRamynNkJ3AlzTED28va)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/release-notes/enterprise/keeper-connection-manager/kcm-version-2.17.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
