# 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](/en/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`](/en/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: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
