--- title: "POST | Update SSH key" slug: "api-post-update-ssh-key" updated: 2026-11-03T14:48:14Z published: 2026-11-03T14:48:14Z canonical: "docs.senhasegura.io/api-post-update-ssh-key" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.senhasegura.io/llms.txt > Use this file to discover all available pages before exploring further. # POST | Update SSH key Update an SSH key in **PAM Core**. ## Prerequisites - Authorization with **access** and **read and write** permission to **PAM Core** granted by the administator in **A2A**. More information in [How to manage authorizations in A2A](/v4-2/docs/how-to-manage-authorizations-in-a2a) - SSH key created in **PAM Core**. More information in [POST | Create SSH key](/v4-2/docs/api-post-create-ssh-key). ## Request ` POST` `/api/pam/key` ## Request parameters Send the parameters you want to update in the request **body**. - identifier - string - required - Unique string defined by the user or by Segura™ for identifying the credential. **Note**: this value is created by the user or automatically generated by Segura™ in [POST | Create SSH key](/v4-2/docs/api-post-create-ssh-key) and is obtained in the response to the [GET | List an SSH key by `id`](/v4-2/docs/api-get-list-an-ssh-key). - ip - string - required - IP address of the main device associated with the SSH key. - hostname - string - required - Name of the main device associated with the SSH key. - private_key - string - required - Private key necessary for user authentication. **Example**: `-----BEGIN OPENSSH PRIVATE KEY-----\rcTA9Vb5aA0kXaK2HEjGUWgeCBG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW\rQyNTUxOQAAACCLABE9/nb3BlbnNzaC1rZXktdjEAAAAAxtPOCkR2sGccAAAAKi5DXJnuQ1y\r\nZwAAAAtzc2gtZWQyNTUxOQAAACCLABE9/cTA9VTGVpdGVGZXJyZWlyYUBIUjFTUkb5aA0kXaK2HEjGUWgeCxtPOCkR2sGccA\rDgaNiGsvbkkkXhepU2NQi3iZ4sAET39xMD1VvloDSRdorYc\rSMZRaB4LG084KRHawZxwAAAAI0F6dXJlQUQrRGVib3JhAAAECc20zsB7FuSJQAqhLxe\rgzAQI=\r-----END OPENSSH PRIVATE KEY-----` - public_key - string - required - Public key that allows servers to verify the user's identity associated with the corresponding private key. **Example**: `ssh-ed25519 C1lZDI1NTE5AAawZxwAAAAAAC3NzaIIsAET39xdorYcSMZRaB4LG084MD1VvloDSRKRH AzureAD+DeboraLeiteFerreira@HR1SRH3` - username - string - Username related to the key in the device. **Note**: although not required, as good practice, filling out this field helps searching for the SSH key. **New SSH key default value**: `usr` - enabled - boolean - SSH key status: active = true; inactive = false - devices - array of hostnames - Additional devices associated with the SSH key, containing their hostname.     → hostname - string - Hostname of the additional device.    **Note**: only previously registered devices are accepted. - tags - string - Keywords for identifying the SSH key. - key_name - string - User-created name for identifying the key. - password - string - Optional password that provides an extra layer of security to the private key. ### Example request ` POST` `{{url}}/api/pam/key` ``` { "identifier": "sshkey3", "ip": "10.66.33.120", "hostname": "w2016", "private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\r\nTA9Vb5aA0kXaK2HEjGUWgeCBG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW\r\nQyNTUxOQAAACCLABE9/nb3BlbnNzaC1rZXktdjEAAAAAxtPOCkR2sGccAAAAKi5DXJnuQ1y\r\nZwAAAAtzc2gtZWQyNTUxOQAAACCLABE9/cTA9VTGVpdGVGZXJyZWlyYUBIUjFTUkb5aA0kXaK2HEjGUWgeCxtPOCkR2sGccA\r\nDgaNiGsvbkkkXhepU2NQi3iZ4sAET39xMD1VvloDSRdorYc\r\nSMZRaB4LG084KRHawZxwAAAAI0F6dXJlQUQrRGVib3JhAAAECc20zsB7FuSJQAqhLxe\r\ngzAQI=\r\n-----END OPENSSH PRIVATE KEY-----", "public_key": "ssh-ed25519 C1lZDI1NTE5AAawZxwAAAAAAC3NzaIIsAET39xdorYcSMZRaB4LG084MD1VvloDSRKRH AzureAD+DeboraLeiteFerreira@HR1SRH3", "username": "dleite3", "enabled": true, "devices": [ { "hostname": "API device test" } ], "tags": "mainsshkey", "key_name": "test4", "password": "fkjwe87a5a8fa9a" } ``` ## Response ``` { "code": 201, "response": { "status": 201, "message": "Key updated successfully!", "error": false, "error_code": 0, "detail": "", "mensagem": "Key updated successfully!", "erro": false, "cod_erro": 0 }, "key": { "id": "83", "identifier": "sshkey3", "devices": [ { "hostname": "API device test", "ip": "10.66.33.20" } ], "devices_error": [] } } ``` ## Errors ****400 - Bad Request**.** --- **Message: "1004: The device's hostname was not informed"** **Possible cause**: the required parameter `hostname` of the device wasn’t informed. **Solution**: provide a value for the `hostname` parameter of the device and resend the request. --- **Message: "1005: The device's IP was not informed"** **Possible cause**: the required parameter `ip` of the device wasn’t informed. **Solution**: provide a value for the `ip` parameter of the device and resend the request. --- **Message: "1013: The public key was not informed"** **Possible cause**: the required parameter `public_key` wasn’t informed. **Solution**: provide a value for the `public_key` parameter and resend the request. --- **Message: "1014: The private key was not informed"** **Possible cause**: the required parameter `private_key` wasn’t informed. **Solution**: provide a value for the `private_key` parameter and resend the request. --- **Message: "1039: Without PAM Configuration Access permission"** **Possible cause**: your authorization doesn’t have permission to create a credential. **Solution**: ask the administrator to check your **read and write** permission to **PAM Core** resources in **A2A**. --- ****404 - Not Found**** --- **Message: "Resource sub not found"** **Possible cause**: the URL or the requested resource isn’t correct. **Solution**: check the URL and make sure the parameter is correct. --- ****500 - Internal Server Error**** --- **Message: "Unexpected error."** **Possible cause**: the error is in the Segura™ server. **Solution**: contact the support team for more information. --- **Message: "You are not authorized to access this resource."** **Possible cause**: you don’t have the authorization to access this resource. **Solution**: ask the administrator to check your permission to access the **PAM Core** resources in **A2A**. --- ****Client authentication failed**** --- **Message: "Client authentication failed."** **Possible cause**: failure in your application authentication with the Segura™ server. **Solution**: check the authentication parameters such as `Access Token URL`, `Client ID` e `Client secret` and request a new access token. --- ****Invalid signature**** --- **Message: "Invalid signature"** **Possible cause**: failure in recognizing the URL of the client application. **Solution**: check the URL of the client application and resent the request. --- ****No route matched with those values**** --- **Message: "No route matched with those values."** **Possible cause**: the authorization header is missing in the API request. **Solution**: request a new access token. --- ****Request timed out**** --- **Message: "Request timed out."** **Possible cause**: the request time has expired. **Solution**: check the connectivity between the source of the request and the Segura™ server.