addedInput schema / properties / input
Added value: +{
+ "additionalProperties": false,
+ "description": "Required when operation=generate. May also be supplied bare (its fields at the top level alongside operation).",
+ "properties": {
+ "clientHosts": {
+ "description": "Client Host blocks for ~/.ssh/config. Used when mode is \"client\" or \"both\". Entries with neither alias nor hostname are dropped.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "alias": {
+ "description": "Host alias matched on the ssh command line; defaults to hostname if omitted.",
+ "type": "string"
+ },
+ "controlMaster": {
+ "description": "Connection multiplexing master.",
+ "enum": [
+ "auto",
+ "no",
+ "yes"
+ ],
+ "type": "string"
+ },
+ "controlPath": {
+ "description": "ControlPath socket for multiplexed connections, e.g. ~/.ssh/cm-%r@%h:%p.",
+ "type": "string"
+ },
+ "controlPersist": {
+ "description": "ControlPersist duration after last client disconnects, e.g. 10m.",
+ "type": "string"
+ },
+ "forwardAgent": {
+ "description": "ForwardAgent — warns when true (agent-hijack risk).",
+ "type": "boolean"
+ },
+ "hostname": {
+ "description": "Real DNS name or IP to connect to (HostName); defaults to alias if omitted.",
+ "type": "string"
+ },
+ "identitiesOnly": {
+ "description": "IdentitiesOnly yes — use only this key, ignore agent keys.",
+ "type": "boolean"
+ },
+ "identityFile": {
+ "description": "Private key path (IdentityFile), e.g. ~/.ssh/id_ed25519.",
+ "type": "string"
+ },
+ "localForward": {
+ "description": "LocalForward entries, each \"localPort remoteHost:remotePort\".",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "port": {
+ "description": "Remote TCP port (Port directive); default 22.",
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "proxyJump": {
+ "description": "ProxyJump bastion/jump-host chain (user@host:port).",
+ "type": "string"
+ },
+ "remoteForward": {
+ "description": "RemoteForward entries, each \"remotePort localHost:localPort\".",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "strictHostKeyChecking": {
+ "description": "Host-key policy; \"no\" warns (MITM risk).",
+ "enum": [
+ "yes",
+ "no",
+ "ask",
+ "accept-new"
+ ],
+ "type": "string"
+ },
+ "user": {
+ "description": "Default login username (User directive).",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "mode": {
+ "description": "Which side(s) to emit. \"client\" fills clientConfig from clientHosts; \"server\" fills serverConfig from serverSettings; \"both\" emits both.",
+ "enum": [
+ "client",
+ "server",
+ "both"
+ ],
+ "type": "string"
+ },
+ "serverSettings": {
+ "additionalProperties": false,
+ "description": "sshd_config daemon directives. Used when mode is \"server\" or \"both\".",
+ "properties": {
+ "allowAgentForwarding": {
+ "description": "AllowAgentForwarding; true warns.",
+ "type": "boolean"
+ },
+ "allowGroups": {
+ "description": "AllowGroups login whitelist.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "allowTcpForwarding": {
+ "description": "AllowTcpForwarding toggle.",
+ "type": "boolean"
+ },
+ "allowUsers": {
+ "description": "AllowUsers login whitelist.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "ciphers": {
+ "description": "Comma-separated Ciphers; weak/CBC/arcfour tokens warn.",
+ "type": "string"
+ },
+ "clientAliveCountMax": {
+ "description": "ClientAliveCountMax unanswered probes before disconnect.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "clientAliveInterval": {
+ "description": "ClientAliveInterval keepalive seconds.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "denyUsers": {
+ "description": "DenyUsers login blacklist.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "hostKeyAlgorithms": {
+ "description": "Comma-separated HostKeyAlgorithms; ssh-rsa/ssh-dss warn.",
+ "type": "string"
+ },
+ "kexAlgorithms": {
+ "description": "Comma-separated KexAlgorithms; SHA-1 and NIST-curve tokens warn.",
+ "type": "string"
+ },
+ "listenAddress": {
+ "description": "ListenAddress bind addresses.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "macs": {
+ "description": "Comma-separated MACs; MD5/SHA1 tokens warn.",
+ "type": "string"
+ },
+ "maxAuthTries": {
+ "description": "MaxAuthTries per connection; high values warn.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "maxSessions": {
+ "description": "MaxSessions concurrent sessions per connection.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "passwordAuthentication": {
+ "description": "PasswordAuthentication; true warns.",
+ "type": "boolean"
+ },
+ "permitRootLogin": {
+ "description": "PermitRootLogin; \"yes\" warns.",
+ "enum": [
+ "yes",
+ "no",
+ "without-password",
+ "forced-commands-only",
+ "prohibit-password"
+ ],
+ "type": "string"
+ },
+ "port": {
+ "description": "sshd listen Port; warns when 22.",
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "pubkeyAuthentication": {
+ "description": "PubkeyAuthentication; false warns.",
+ "type": "boolean"
+ },
+ "x11Forwarding": {
+ "description": "X11Forwarding; true warns.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+}
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "operation": {
+ "description": "The operation echoed back (generate or presets).",
+ "type": "string"
+ },
+ "result": {
+ "description": "For generate, the generated config and analysis. For presets, a \"presets\" array of example requests.",
+ "properties": {
+ "clientConfig": {
+ "description": "Generated ~/.ssh/config text; empty when mode is \"server\".",
+ "type": "string"
+ },
+ "explanation": {
+ "description": "Per-directive explanations actually emitted.",
+ "items": {
+ "properties": {
+ "directive": {
+ "description": "SSH directive name.",
+ "type": "string"
+ },
+ "meaning": {
+ "description": "Plain-language description of the directive.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "presets": {
+ "description": "Present when operation=presets; each is an example request with id, name, description, input.",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "serverConfig": {
+ "description": "Generated /etc/ssh/sshd_config text; empty when mode is \"client\".",
+ "type": "string"
+ },
+ "warnings": {
+ "description": "Security advisories for weak or risky directives.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "success": {
+ "description": "Always true on a 200 response.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+}