Ajouter une clé SSH
POST
/api/v1/
operationIdpostSshKey
- Niveau requis
- Exploitation
- Quota
- mutation, 300 appels par heure
Enregistre une clé publique sur le compte. Elle est active dès sa création.
La clé est refusée si son algorithme n'est pas reconnu, ou s'il s'agit d'une RSA de moins de 2048 bits. La réponse porte la fiche de la clé : relevez-y son id, nécessaire pour la désactiver ou la supprimer. Si la fiche n'a pas pu être relue, la réponse se limite à {"created": true} : retrouvez alors la clé par GET /ssh-keys.
Corps de la requête
application/json
-
keystringrequisClé publique OpenSSH, telle que dans le fichier
.pub
Exemple de requête
{
"key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINK0AO80+x734if/v0cHQXq3DTEQDjY2M0t6Mm3lDOiC poste-admin"
}
Réponses
201
Clé enregistrée
{
"data": {
"id": "47",
"type": "ssh-ed25519",
"comment": "poste-admin",
"active": true,
"fingerprint": "SHA256:lpEBpHL5EO65b9cDXg8YjfqlnovHfCn+3faPLPbfnZI",
"fingerprint_md5": "ab:c7:15:6a:9a:4e:fb:02:1b:b8:ab:3f:e5:41:67:a2",
"weak": false
}
}
Champs de la réponse 8
-
dataobjectrequis -
idstring -
typestring -
commentstringCommentaire embarqué dans la clé
-
fingerprintstringEmpreinte SHA-256, format
ssh-keygen -l -
fingerprint_md5stringEmpreinte MD5, celle qu'affiche le panel
-
activebooleanPosée automatiquement à la création ou réinstallation d'un VPS
-
weakbooleanClé héritée qui serait refusée à l'ajout aujourd'hui (RSA de moins de 2048 bits) : listée pour pouvoir être désactivée ou supprimée, refusée à la réinstallation
400
Paramètres invalides : validation_failed — clé illisible, d'un type inconnu, ou RSA de moins de 2048 bits.
validation_failed — clé illisible, d'un type inconnu, ou RSA de moins de 2048 bits.{
"type": "https://docs.lws.fr/kvm/errors/validation-failed",
"title": "Paramètres invalides",
"status": 400,
"code": "validation_failed",
"detail": "Clé SSH refusée. Attendu : une clé publique OpenSSH d'un type reconnu, les clés RSA devant faire au moins 2048 bits.",
"request_id": "3f9a1c07b2e45d18",
"errors": {
"key": "Clé SSH refusée. Attendu : une clé publique OpenSSH d'un type reconnu, les clés RSA devant faire au moins 2048 bits."
}
}
Champs de la réponse 18
-
typestring (uri)requis -
titlestringrequisTitre court
-
statusinteger (int64)requisStatut HTTP
-
codestringrequisCode machine stable (voir « Erreurs » dans Pour commencer)
-
detailstringrequisMessage détaillé
-
request_idstringrequisIdentifiant de la requête, à communiquer au support
-
errorsobjectvalidation_failed: message par paramètre fautif -
required_levelstringinsufficient_scope: niveau exigé par l'opération -
task_idstringtask_already_running: tâche en cours sur ce VPS -
familystringrate_limited: famille de quota épuisée -
limitinteger (int64)rate_limited: plafond horaire de la famille -
retry_afterinteger (int64)rate_limited: secondes à attendre -
lockstringserver_locked: verrou posé par l'hyperviseur (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, une opération est en cours, réessayez aprèsRetry-After;suspended, le VPS hiberne, démarrez-le d'abord ;support_notified, verrou anormal, l'équipe LWS est prévenue et intervient -
maintenanceobjectserver_maintenance: nature de l'intervention, début et fin prévue (nullpour un incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
401
Authentification refusée : invalid_token — en-tête Authorization absent ou malformé, ou clé inconnue ; access_disabled — accès API coupé pour ce compte, ou service API momentanément coupé par LWS.
invalid_token — en-tête Authorization absent ou malformé, ou clé inconnue ; access_disabled — accès API coupé pour ce compte, ou service API momentanément coupé par LWS.en-tête Authorization absent ou malformé, ou clé inconnue
{
"type": "https://docs.lws.fr/kvm/errors/invalid-token",
"title": "Authentification invalide",
"status": 401,
"code": "invalid_token",
"detail": "Clé inconnue ou révoquée.",
"request_id": "3f9a1c07b2e45d18"
}
accès API coupé pour ce compte, ou service API momentanément coupé par LWS
{
"type": "https://docs.lws.fr/kvm/errors/access-disabled",
"title": "Accès API désactivé",
"status": 401,
"code": "access_disabled",
"detail": "L'accès API est désactivé pour ce compte. Réactivez-le depuis la page « API / MCP » du panel.",
"request_id": "3f9a1c07b2e45d18"
}
Champs de la réponse 18
-
typestring (uri)requis -
titlestringrequisTitre court
-
statusinteger (int64)requisStatut HTTP
-
codestringrequisCode machine stable (voir « Erreurs » dans Pour commencer)
-
detailstringrequisMessage détaillé
-
request_idstringrequisIdentifiant de la requête, à communiquer au support
-
errorsobjectvalidation_failed: message par paramètre fautif -
required_levelstringinsufficient_scope: niveau exigé par l'opération -
task_idstringtask_already_running: tâche en cours sur ce VPS -
familystringrate_limited: famille de quota épuisée -
limitinteger (int64)rate_limited: plafond horaire de la famille -
retry_afterinteger (int64)rate_limited: secondes à attendre -
lockstringserver_locked: verrou posé par l'hyperviseur (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, une opération est en cours, réessayez aprèsRetry-After;suspended, le VPS hiberne, démarrez-le d'abord ;support_notified, verrou anormal, l'équipe LWS est prévenue et intervient -
maintenanceobjectserver_maintenance: nature de l'intervention, début et fin prévue (nullpour un incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
403
Accès refusé : insufficient_scope — niveau de la clé insuffisant ; ip_not_allowed — adresse d'appel non autorisée.
insufficient_scope — niveau de la clé insuffisant ; ip_not_allowed — adresse d'appel non autorisée.niveau de la clé insuffisant
{
"type": "https://docs.lws.fr/kvm/errors/insufficient-scope",
"title": "Droits insuffisants",
"status": 403,
"code": "insufficient_scope",
"detail": "Niveau de permission « exploitation » requis.",
"request_id": "3f9a1c07b2e45d18",
"required_level": "exploitation"
}
adresse d'appel non autorisée
{
"type": "https://docs.lws.fr/kvm/errors/ip-not-allowed",
"title": "Adresse non autorisée",
"status": 403,
"code": "ip_not_allowed",
"detail": "L'adresse 203.0.113.10 ne figure pas parmi les adresses autorisées de ce compte.",
"request_id": "3f9a1c07b2e45d18"
}
Champs de la réponse 18
-
typestring (uri)requis -
titlestringrequisTitre court
-
statusinteger (int64)requisStatut HTTP
-
codestringrequisCode machine stable (voir « Erreurs » dans Pour commencer)
-
detailstringrequisMessage détaillé
-
request_idstringrequisIdentifiant de la requête, à communiquer au support
-
errorsobjectvalidation_failed: message par paramètre fautif -
required_levelstringinsufficient_scope: niveau exigé par l'opération -
task_idstringtask_already_running: tâche en cours sur ce VPS -
familystringrate_limited: famille de quota épuisée -
limitinteger (int64)rate_limited: plafond horaire de la famille -
retry_afterinteger (int64)rate_limited: secondes à attendre -
lockstringserver_locked: verrou posé par l'hyperviseur (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, une opération est en cours, réessayez aprèsRetry-After;suspended, le VPS hiberne, démarrez-le d'abord ;support_notified, verrou anormal, l'équipe LWS est prévenue et intervient -
maintenanceobjectserver_maintenance: nature de l'intervention, début et fin prévue (nullpour un incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
429
Quota dépassé : rate_limited — quota horaire de la famille épuisé.
rate_limited — quota horaire de la famille épuisé.{
"type": "https://docs.lws.fr/kvm/errors/rate-limited",
"title": "Quota dépassé",
"status": 429,
"code": "rate_limited",
"detail": "Quota dépassé pour les opérations de type « mutation » : 300 appels par heure. Réessayez dans 95 seconde(s).",
"request_id": "3f9a1c07b2e45d18",
"family": "mutation",
"limit": 300,
"retry_after": 95
}
Champs de la réponse 18
-
typestring (uri)requis -
titlestringrequisTitre court
-
statusinteger (int64)requisStatut HTTP
-
codestringrequisCode machine stable (voir « Erreurs » dans Pour commencer)
-
detailstringrequisMessage détaillé
-
request_idstringrequisIdentifiant de la requête, à communiquer au support
-
errorsobjectvalidation_failed: message par paramètre fautif -
required_levelstringinsufficient_scope: niveau exigé par l'opération -
task_idstringtask_already_running: tâche en cours sur ce VPS -
familystringrate_limited: famille de quota épuisée -
limitinteger (int64)rate_limited: plafond horaire de la famille -
retry_afterinteger (int64)rate_limited: secondes à attendre -
lockstringserver_locked: verrou posé par l'hyperviseur (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, une opération est en cours, réessayez aprèsRetry-After;suspended, le VPS hiberne, démarrez-le d'abord ;support_notified, verrou anormal, l'équipe LWS est prévenue et intervient -
maintenanceobjectserver_maintenance: nature de l'intervention, début et fin prévue (nullpour un incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)
502
Dépendance injoignable : upstream_unavailable — API de gestion des clés injoignable.
upstream_unavailable — API de gestion des clés injoignable.{
"type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
"title": "Service momentanément indisponible",
"status": 502,
"code": "upstream_unavailable",
"detail": "La liste des clés SSH n'a pas pu être obtenue. Réessayez dans quelques instants.",
"request_id": "3f9a1c07b2e45d18"
}
Champs de la réponse 18
-
typestring (uri)requis -
titlestringrequisTitre court
-
statusinteger (int64)requisStatut HTTP
-
codestringrequisCode machine stable (voir « Erreurs » dans Pour commencer)
-
detailstringrequisMessage détaillé
-
request_idstringrequisIdentifiant de la requête, à communiquer au support
-
errorsobjectvalidation_failed: message par paramètre fautif -
required_levelstringinsufficient_scope: niveau exigé par l'opération -
task_idstringtask_already_running: tâche en cours sur ce VPS -
familystringrate_limited: famille de quota épuisée -
limitinteger (int64)rate_limited: plafond horaire de la famille -
retry_afterinteger (int64)rate_limited: secondes à attendre -
lockstringserver_locked: verrou posé par l'hyperviseur (backup,snapshot,suspended…) -
reasonstringserver_locked:operation_in_progress, une opération est en cours, réessayez aprèsRetry-After;suspended, le VPS hiberne, démarrez-le d'abord ;support_notified, verrou anormal, l'équipe LWS est prévenue et intervient -
maintenanceobjectserver_maintenance: nature de l'intervention, début et fin prévue (nullpour un incident) -
kindstring -
started_atstring (date-time) -
expected_endstring (date-time)