SSH authentication failing after upgradeIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } After upgrading to Quebec, SSH authentication fails on the MID server. The MID server can no longer authenticate to target hosts using an SSH user key. Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } SSH authentication failures appear in the MID server log after upgrading to Quebec The following error is logged in the MID server log: Worker-Interactive:CommandPipeline-<pipeline-id> DEBUG: SSHSessionFactory: connection failed authentication for key SSHSessionPoolKey[target:<target-ip>&port:22&fixed_cred:&tag:&unique_id:<unique-id>&privilegedCommand:sudo&passwordPrompt:&debug:false&useSeperateSession: false&updateIndex: 2&disablePrivilegeCheck: false&cipherAlgorithms: aes128-ctr,aes192-ctr,aes256-ctr,3des-ctr,aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc&hostKeyAlgorithms: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-256,rsa-sha2-512,ssh-rsa,ssh-dss&kexAlgorithms: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1,rsa2048-sha256,rsa1024-sha1&macAlgorithms: hmac-sha2-256,hmac-sha1,hmac-sha2-512,hmac-sha1-96,hmac-md5-96,hmac-md5] with credential <credential-name>Worker-Interactive:CommandPipeline-<pipeline-id> DEBUG: SSHSessionFactory: Authentication failure. Blocking key SSHSessionPoolKey[...] The target host uses ssh-dss as the user key algorithm Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Quebec Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } There are two types of SSH keys involved in a connection: a host key and a user key. The host key is unique to each host. During the SSH handshake, the client and server exchange the list of supported host key algorithms and agree on a common algorithm. The user key is provided per user and may differ from the negotiated host key algorithm. When the SSH client authenticates, it first validates the host key, then validates the user key. Beginning with Quebec, the SSH session factory behavior changed in the following way: Before Quebec: the SSH client checks whether the presented key matches a host key algorithm that the client supports, and uses it.Beginning with Quebec: the SSH client checks whether the presented key matches a host key algorithm that both the client and server support. If no matching algorithm is found, the connection fails. This change was made to align with RFC standards, which state: Any public key algorithm may be offered for use in authentication. In particular, the list is not constrained by what was negotiated during key exchange. If the server does not support some algorithm, it MUST simply reject the request. As a result, if the target server does not include ssh-dss in its supported host key algorithms, and the MID server attempts to connect using a user credential with an ssh-dss user key, the connection fails. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Two workarounds are available. Option 1: Upgrade the user key to a stronger algorithm (recommended) Upgrade the user key to a stronger, currently supported algorithm such as RSA or ECDSA. This is the approach recommended by the OpenSSH project and resolves the root cause. Option 2: Add ssh-dss as a supported host key algorithm on the target server If upgrading the user key is not possible, configure the target server to support ssh-dss as a host key algorithm. 1. Generate an ssh-dss host key on the target server and place it under `/etc/ssh/`, alongside the other keys generated during installation: ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key 2. Add the following line to `/etc/ssh/sshd_config` to enable the server to accept ssh-dss. This step is required on newer versions of sshd where ssh-dss is turned off by default: HostKeyAlgorithms=+ssh-ds 3. Restart the sshd service to apply the configuration change.