the home site for me: also iteration 3 or 4 of my site
at main 22 kB view raw
1%YAML 1.2 2--- 3# https://www.sublimetext.com/docs/syntax.html 4# https://man7.org/linux/man-pages/man8/sshd.8.html#AUTHORIZED_KEYS_FILE_FORMAT 5# https://man.openbsd.org/sshd.8#AUTHORIZED_KEYS_FILE_FORMAT 6name: Authorized Keys 7scope: text.authorized_keys 8version: 2 9extends: SSH Crypto.sublime-syntax 10 11file_extensions: 12 - authorized_keys 13 - pub 14 15hidden_file_extensions: 16 - authorized_keys2 17 18contexts: 19 main: 20 - include: comments-number-sign 21 - match: ^ 22 push: 23 - meta_scope: meta.line.authorized-key.authorized_keys 24 - include: pop-before-nl 25 - include: pop-nl 26 - include: ssh-key-types 27 - include: ssh-fingerprint-with-label 28 - include: flag-options 29 - include: value-options 30 - include: strings 31 - match: = 32 scope: keyword.operator.assignment.authorized_keys 33 - include: punctuation-comma-sequence 34 35 flag-options: 36 - match: (?:no-)?(?:pty|user-rc|(?:agent|port|X11)-forwarding) 37 scope: keyword.other.authorized_keys 38 - match: (?:no-touch-required|verify-required|cert-authority|restrict) 39 scope: keyword.other.authorized_keys 40 41 value-options: 42 - match: (principals)(=) 43 captures: 44 1: keyword.other.authorized_keys 45 2: keyword.operator.assignment.authorized_keys 46 with_prototype: 47 - include: punctuation-comma-sequence 48 push: value-option-body 49 50 - match: (tunnel)(=) 51 captures: 52 1: keyword.other.authorized_keys 53 2: keyword.operator.assignment.authorized_keys 54 with_prototype: 55 - match: \d{1,3} 56 scope: meta.number.integer.decimal.authorized_keys 57 constant.numeric.value.authorized_keys 58 push: value-option-body 59 60 - match: (?:(expiry-time)|(valid-before))(=) 61 captures: 62 1: keyword.other.authorized_keys 63 2: invalid.deprecated.authorized_keys 64 3: keyword.operator.assignment.authorized_keys 65 with_prototype: 66 - match: |- 67 (?x: 68 \d{4} # Year 69 (?:0\d|1[12]) # Month 70 (?:[0-2]\d|3[01]) # Day 71 (?: # Optionally: 72 (?:[01]\d|2[0-3]) # HH 73 (?:[0-5]\d){1,2} # MM and maybe SS 74 )? 75 Z? # Optional UTC 76 ) 77 scope: meta.constant.date.authorized_keys 78 constant.numeric.integer.date.authorized_keys 79 push: value-option-body 80 81 # Technically, permitopen requires a host, but let's be lenient 82 - match: (permitlisten|permitopen)(=) 83 captures: 84 1: keyword.other.authorized_keys 85 2: keyword.operator.assignment.authorized_keys 86 with_prototype: 87 - include: ipv4 88 - include: ipv6-square-bracket 89 - match: (?:([^"]*)(:))?(?:({{zero_to_65535}})|(\*)) 90 captures: 91 1: meta.string.host.authorized_keys 92 2: punctuation.separator.sequence.authorized_keys 93 3: meta.number.integer.decimal.authorized_keys 94 constant.numeric.port-number.authorized_keys 95 4: constant.other.wildcard.asterisk.authorized_keys 96 push: value-option-body 97 98 - match: (from)(=) 99 captures: 100 1: keyword.other.authorized_keys 101 2: keyword.operator.assignment.authorized_keys 102 with_prototype: 103 - include: operator-exclamation 104 - include: punctuation-comma-sequence 105 - include: punctuation-dot-sequence 106 - include: wildcards 107 push: value-option-body 108 109 - match: (environment)(=) 110 captures: 111 1: keyword.other.authorized_keys 112 2: keyword.operator.assignment.authorized_keys 113 with_prototype: 114 - match: (\w+)(=) 115 captures: 116 1: variable.other.readwrite.authorized_keys 117 2: keyword.operator.assignment.authorized_keys 118 push: value-option-body 119 120 - match: (command)(=)(") 121 captures: 122 1: keyword.other.authorized_keys 123 2: keyword.operator.assignment.authorized_keys 124 3: string.quoted.double.authorized_keys 125 punctuation.definition.string.begin.authorized_keys 126 # TODO: Allow escaped double-quote 127 embed: scope:source.shell.bash 128 embed_scope: source.shell.embedded 129 escape: '"|(?=$)' 130 escape_captures: 131 0: string.quoted.double.authorized_keys 132 punctuation.definition.string.end.authorized_keys 133 134 value-option-body: 135 - include: strings 136 - match: (?=,|\s) 137 pop: 1 138 - match: . 139 scope: invalid.illegal.authorized_keys 140 pop: 1 141 142 strings: 143 - match: '"' 144 scope: punctuation.definition.string.begin.authorized_keys 145 push: 146 - meta_scope: string.quoted.double.authorized_keys 147 - match: \\" 148 scope: constant.character.escape.authorized_keys 149 - match: '"' 150 scope: punctuation.definition.string.end.authorized_keys 151 pop: 1 152 153 154 155 comments: 156 - include: comments-number-sign 157 - include: comments-semicolon 158 159 comments-number-sign: 160 - match: ^\s*(#+) 161 captures: 162 1: comment.line.number-sign.ssh.common punctuation.definition.comment.ssh.common 163 push: 164 - meta_content_scope: comment.line.number-sign.ssh.common 165 - match: \n 166 scope: comment.line.number-sign.ssh.common 167 pop: true 168 169 comments-semicolon: 170 - match: ^\s*(;+) 171 captures: 172 1: comment.line.semi-colon.ssh.common punctuation.definition.comment.ssh.common 173 push: 174 - meta_content_scope: comment.line.semi-colon.ssh.common 175 - include: pop-nl 176 177###[ COMPONENTS ]############################################################## 178 179 operator-exclamation: 180 - match: '!' 181 scope: keyword.operator.logical.ssh.common 182 183 wildcards: 184 - match: \* 185 scope: constant.other.wildcard.asterisk.ssh.common 186 - match: \? 187 scope: constant.other.wildcard.questionmark.ssh.common 188 189 punctuation-comma-sequence: 190 - match: ',' 191 scope: punctuation.separator.sequence.ssh.common 192 193 punctuation-dot-sequence: 194 - match: \. 195 scope: punctuation.separator.sequence.ssh.common 196 197 punctuation-at: 198 - match: '@' 199 scope: punctuation.separator.sequence.ssh.common 200 201 ssh-fingerprint: 202 - match: '{{ssh_fingerprint}}' 203 scope: variable.other.fingerprint.ssh.common 204 205 ssh-fingerprint-with-label: 206 - match: '{{ssh_fingerprint}}' 207 scope: variable.other.fingerprint.ssh.common 208 push: expect-fingerprint-label 209 210 expect-fingerprint-label: 211 - include: pop-before-nl 212 - match: (?=\S) 213 push: 214 - meta_scope: meta.annotation.identifier.ssh.common 215 string.unquoted.ssh.common 216 - match: '(?=[ \t]*$)' 217 pop: 1 218 - include: punctuation-at 219 220 time-values: 221 # https://man.openbsd.org/sshd_config.5#TIME_FORMATS 222 # seconds, minutes, hours, days, weeks 223 - match: \b(?=[\dsmhdw]*\d[smhdw][\s,"]) 224 push: 225 - meta_scope: meta.constant.time.ssh.common 226 meta.number.integer.decimal.ssh.common 227 - match: (?=[\s,"]) 228 pop: 1 229 - match: (\d+)([smhdw]) 230 captures: 231 1: constant.numeric.value.ssh.common 232 2: constant.numeric.suffix.ssh.common 233 234 bytes-values: 235 - match: \b(\d+)([KMG])(?=[\s,"]) 236 scope: meta.constant.bytes.ssh.common 237 meta.number.integer.other.ssh.common 238 captures: 239 1: constant.numeric.value.ssh.common 240 2: constant.numeric.suffix.ssh.common 241 242 mac-addresses: 243 - match: (?:[0-9a-fA-F]{2}:){5}(?:[0-9a-fA-F]{2}) 244 scope: entity.name.constant.mac-address.ssh.common 245 246 ipv4: 247 - match: '\b{{ipv4}}\b' 248 scope: meta.number.integer.other.ssh.common constant.numeric.ip-address.v4.ssh.common 249 250 ipv6: 251 - match: '{{ipv6}}' 252 scope: meta.number.integer.other.ssh.common constant.numeric.ip-address.v6.ssh.common 253 254 ipv6-square-bracket: 255 - match: (\[){{ipv6}}(\]) 256 scope: meta.number.integer.other.ssh.common constant.numeric.ip-address.v6.ssh.common 257 captures: 258 1: punctuation.definition.constant.begin.ssh.common 259 2: punctuation.definition.constant.end.ssh.common 260 261 ip-addresses: 262 - include: ipv6 263 - include: ipv4 264 265 ipv4-with-cidr: 266 - match: \b({{ipv4}})(?:(/)({{zero_to_32}}))?\b 267 captures: 268 1: meta.number.integer.other.ssh.common constant.numeric.ip-address.v4.ssh.common 269 2: punctuation.separator.sequence.ssh.common 270 3: constant.other.range.ssh.common 271 272 ipv6-with-cidr: 273 - match: ({{ipv6}})(?:(/)({{zero_to_128}})\b)? 274 captures: 275 1: meta.number.integer.other.ssh.common constant.numeric.ip-address.v6.ssh.common 276 2: punctuation.separator.sequence.ssh.common 277 3: constant.other.range.ssh.common 278 279 ip-addresses-with-cidr: 280 - include: ipv6-with-cidr 281 - include: ipv4-with-cidr 282 283 port-numbers: 284 - match: \b{{zero_to_65535}}(?![\w:]) 285 scope: meta.number.integer.decimal.ssh.common 286 constant.numeric.port-number.ssh.common 287 288 match-all: 289 - match: '\b(?xi: all )\b' 290 scope: constant.language.boolean.true.ssh.common 291 292 none: 293 - match: \bnone\b 294 scope: constant.language.null.ssh.common 295 296 any: 297 - match: \bany\b 298 scope: constant.language.set.ssh.common 299 300 boolean: 301 - match: \byes\b 302 scope: constant.language.boolean.true.ssh.common 303 - match: \bno\b 304 scope: constant.language.boolean.false.ssh.common 305 306 boolean-with-typing: 307 - include: boolean 308 # Consume while typing as well, but unscoped 309 - match: \b(?:ye?|n)\b 310 311 log-level: 312 - match: '\b(?x: QUIET | FATAL | ERROR | INFO | DEBUG[1-3]? )\b' 313 scope: constant.language.log-level.ssh.common 314 315 possibly-quoted-value: 316 - meta_content_scope: meta.mapping.value.ssh.common 317 - match: '"' 318 scope: punctuation.definition.string.begin.ssh.common 319 push: 320 - meta_scope: string.quoted.double.ssh.common 321 - match: (")(?:\s*(\S.*))? 322 captures: 323 1: punctuation.definition.string.end.ssh.common 324 2: invalid.illegal.ssh.common 325 pop: 1 326 - match: \n|$ 327 scope: invalid.illegal.unclosed-string.ssh.common 328 pop: 2 329 - match: (?=\S) 330 push: 331 - meta_content_scope: string.unquoted.ssh.common 332 - include: pop-before-nl 333 - include: pop-nl 334 335 string-patterns: 336 # https://man7.org/linux/man-pages/man5/ssh_config.5.html#PATTERNS 337 # https://man.openbsd.org/ssh_config.5#PATTERNS 338 # https://man7.org/linux/man-pages/man5/sshd_config.5.html#PATTERNS 339 # https://man.openbsd.org/sshd_config.5#PATTERNS 340 - include: punctuation-comma-sequence 341 - include: operator-exclamation 342 - match: '"' 343 scope: punctuation.definition.string.begin.ssh.common 344 push: 345 - meta_content_scope: string.quoted.double.ssh.common 346 - match: '"' 347 scope: punctuation.definition.string.end.ssh.common 348 pop: 1 349 - include: wildcards 350 - match: (?=\S) 351 push: 352 - meta_content_scope: string.unquoted.ssh.common 353 - match: (?=[,!\s]) 354 pop: 1 355 - include: wildcards 356 357 paths: 358 # This is just heuristic. Expect failures. 359 - match: (?=~?[\w.\-?*${}%]*/[\w.\-?*${}%]?) 360 push: 361 - meta_scope: meta.path.ssh.common 362 entity.name.ssh.common 363 - match: (?=[\s,"]) 364 pop: 1 365 - match: ~[\w\-.]* 366 scope: variable.language.home.ssh.common 367 - match: (/)(?:(\.{1,2})(?=/)|\.(?!/))? 368 captures: 369 1: punctuation.separator.path.ssh.common 370 2: constant.other.placeholder.ssh.common 371 - match: \.(?=[\w*?%]) 372 scope: punctuation.separator.sequence.ssh.common 373 - include: wildcards 374 - include: tokens 375 - include: environment-variables 376 377 none-command-values: 378 - match: \s*(none)\b[ \t]*$ 379 captures: 380 1: constant.language.null.ssh.common 381 - match: \s*((")(none)("))[ \t]*$ 382 captures: 383 1: string.quoted.double.ssh.common 384 2: punctuation.definition.string.begin.ssh.common 385 3: constant.language.null.ssh.common 386 4: punctuation.definition.string.end.ssh.common 387 388 tokens: [] 389 environment-variables: [] 390 391###[ PROTOTYPE ]############################################################### 392 393 pop-nl: 394 - match: \n 395 pop: 1 396 397 pop-before-nl: 398 - match: (?=\n) 399 pop: 1 400 401############################################################################### 402 403 404 405 ssh-ciphers: 406 - match: \b(?:twofish256\-gcm@libassh\.org|twofish256\-ctr|twofish192\-ctr|twofish128\-gcm@libassh\.org|twofish128\-ctr|twofish\-ctr|crypticore128@ssh\.com|chacha20\-poly1305@openssh\.com|chacha20\-poly1305|camellia256\-ctr@openssh\.org|camellia256\-ctr|camellia192\-ctr@openssh\.org|camellia192\-ctr|camellia128\-ctr@openssh\.org|camellia128\-ctr|aes256\-gcm@openssh\.com|aes256\-gcm|aes256\-ctr|aes192\-gcm@openssh\.com|aes192\-ctr|aes128\-gcm@openssh\.com|aes128\-gcm|aes128\-ctr|AEAD_CAMELLIA_256_GCM|AEAD_CAMELLIA_128_GCM|AEAD_AES_256_GCM|AEAD_AES_128_GCM)(?=[,\s\"]) 407 scope: support.function.cipher.ssh.crypto 408 - match: \b(?:twofish256\-cbc|twofish192\-cbc|twofish128\-cbc|twofish\-ofb|twofish\-ecb|twofish\-cfb|twofish\-cbc|serpent256\-gcm@libassh\.org|serpent256\-ctr|serpent256\-cbc|serpent192\-ctr|serpent192\-cbc|serpent128\-gcm@libassh\.org|serpent128\-ctr|serpent128\-cbc|seed\-ctr@ssh\.com|seed\-cbc@ssh\.com|rijndael256\-cbc|rijndael192\-cbc|rijndael128\-cbc|rijndael\-cbc@ssh\.com|rijndael\-cbc@lysator\.liu\.se|none|idea\-ofb|idea\-ecb|idea\-ctr|idea\-cfb|idea\-cbc|grasshopper\-ctr128|des\-ofb|des\-ecb|des\-cfb|des\-cbc@ssh\.com|des\-cbc\-ssh1|des\-cbc|des|cast128\-ofb|cast128\-ecb|cast128\-ctr|cast128\-cfb|cast128\-cbc|cast128\-12\-ofb|cast128\-12\-ecb|cast128\-12\-ctr|cast128\-12\-cfb|cast128\-12\-cbc|camellia256\-cbc@openssh\.org|camellia256\-cbc|camellia192\-cbc@openssh\.org|camellia192\-cbc|camellia128\-cbc@openssh\.org|camellia128\-cbc|blowfish\-ecb|blowfish\-ctr|blowfish\-cfb|blowfish\-cbc|blowfish|arcfour256|arcfour128|arcfour|aes256\-cbc|aes192\-cbc|aes128\-ocb@libassh\.org|aes128\-cbc|3des\-ofb|3des\-ecb|3des\-ctr|3des\-cfb|3des\-cbc|3des)(?=[,\s\"]) 409 scope: invalid.deprecated.cipher.ssh.crypto 410 ssh-kex-algorithms: 411 - match: \b(?:x25519\-kyber512\-sha512@aws\.amazon\.com|x25519\-kyber\-512r3\-sha256\-d00@amazon\.com|sntrup761x25519\-sha512@openssh\.com|sntrup4591761x25519\-sha512@tinyssh\.org|sm2kep\-sha2\-nistp256|rsa2048\-sha256|mlkem768x25519\-sha256|mlkem768nistp256\-sha256|mlkem1024nistp384\-sha384|m511\-sha512@libassh\.org|m383\-sha384@libassh\.org|kexguess2@matt\.ucc\.asn\.au|kexAlgoECDH521|kexAlgoECDH384|kexAlgoECDH256|kexAlgoCurve25519SHA256|kex\-strict\-s\-v00@openssh\.com|kex\-strict\-c\-v00@openssh\.com|gss\-nistp521\-sha512\-|gss\-nistp384\-sha384\-|gss\-nistp384\-sha256\-|gss\-nistp256\-sha256\-|gss\-group18\-sha512\-|gss\-group17\-sha512\-|gss\-group16\-sha512\-|gss\-group15\-sha512\-toWM5Slw5Ew8Mqkay\+al2g==|gss\-group15\-sha512\-|gss\-group14\-sha256\-toWM5Slw5Ew8Mqkay\+al2g==|gss\-group14\-sha256\-|gss\-gex\-sha256\-|gss\-curve448\-sha512\-|gss\-curve25519\-sha256\-|gss\-13\.3\.132\.0\.10\-sha256\-|ext\-info\-s|ext\-info\-c|ecmqv\-sha2|ecdh\-sha2\-wiRIU8TKjMZ418sMqlqtvQ==|ecdh\-sha2\-qcFQaMAMGhTziMT0z\+Tuzw==|ecdh\-sha2\-nistt571|ecdh\-sha2\-nistp521|ecdh\-sha2\-nistp384|ecdh\-sha2\-nistp256|ecdh\-sha2\-nistp224|ecdh\-sha2\-nistp192|ecdh\-sha2\-nistk409|ecdh\-sha2\-nistk283|ecdh\-sha2\-nistb409|ecdh\-sha2\-mNVwCXAoS1HGmHpLvBC94w==|ecdh\-sha2\-m/FtSAmrV4j/Wy6RVUaK7A==|ecdh\-sha2\-h/SsxnLCtRBh7I9ATyeB3A==|ecdh\-sha2\-curve25519|ecdh\-sha2\-brainpoolp521r1@genua\.de|ecdh\-sha2\-brainpoolp384r1@genua\.de|ecdh\-sha2\-brainpoolp256r1@genua\.de|ecdh\-sha2\-D3FefCjYoJ/kfXgAyLddYA==|ecdh\-sha2\-9UzNcgwTlEnSCECZa7V1mw==|ecdh\-sha2\-1\.3\.132\.0\.38|ecdh\-sha2\-1\.3\.132\.0\.37|ecdh\-sha2\-1\.3\.132\.0\.36|ecdh\-sha2\-1\.3\.132\.0\.35|ecdh\-sha2\-1\.3\.132\.0\.34|ecdh\-sha2\-1\.3\.132\.0\.16|ecdh\-sha2\-1\.3\.132\.0\.10|ecdh\-sha2\-1\.2\.840\.10045\.3\.1\.7|ecdh\-nistp521\-kyber\-1024r3\-sha512\-d00@openquantumsafe\.org|ecdh\-nistp384\-kyber\-768r3\-sha384\-d00@openquantumsafe\.org|ecdh\-nistp256\-kyber\-512r3\-sha256\-d00@openquantumsafe\.org|diffie\-hellman_group17\-sha512|diffie\-hellman\-group18\-sha512@ssh\.com|diffie\-hellman\-group18\-sha512|diffie\-hellman\-group17\-sha512|diffie\-hellman\-group16\-sha512@ssh\.com|diffie\-hellman\-group16\-sha512|diffie\-hellman\-group16\-sha384@ssh\.com|diffie\-hellman\-group16\-sha256|diffie\-hellman\-group15\-sha512|diffie\-hellman\-group15\-sha384@ssh\.com|diffie\-hellman\-group15\-sha256@ssh\.com|diffie\-hellman\-group15\-sha256|diffie\-hellman\-group14\-sha256@ssh\.com|diffie\-hellman\-group14\-sha256|diffie\-hellman\-group14\-sha224@ssh\.com|diffie\-hellman\-group1\-sha256|diffie\-hellman\-group\-exchange\-sha512@ssh\.com|diffie\-hellman\-group\-exchange\-sha512@ssh\.com|diffie\-hellman\-group\-exchange\-sha384@ssh\.com|diffie\-hellman\-group\-exchange\-sha256@ssh\.com|diffie\-hellman\-group\-exchange\-sha256@ssh\.com|diffie\-hellman\-group\-exchange\-sha256|diffie\-hellman\-group\-exchange\-sha256|diffie\-hellman\-group\-exchange\-sha224@ssh\.com|curve448\-sha512@libssh\.org|curve448\-sha512|curve25519\-sha256@libssh\.org|curve25519\-sha256|Curve25519SHA256)(?=[,\s\"]) 412 scope: support.function.kex-algorithm.ssh.crypto 413 - match: \b(?:rsa1024\-sha1|kexAlgoDH1SHA1|kexAlgoDH14SHA1|gss\-group14\-sha1\-toWM5Slw5Ew8Mqkay\+al2g==|gss\-group14\-sha1\-|gss\-group1\-sha1\-toWM5Slw5Ew8Mqkay\+al2g==|gss\-group1\-sha1\-|gss\-gex\-sha1\-toWM5Slw5Ew8Mqkay\+al2g==|gss\-gex\-sha1\-|ecdh\-sha2\-zD/b3hu/71952ArpUG4OjQ==|ecdh\-sha2\-qCbG5Cn/jjsZ7nBeR7EnOA==|ecdh\-sha2\-nistk233|ecdh\-sha2\-nistk163|ecdh\-sha2\-nistb233|ecdh\-sha2\-VqBg4QRPjxx1EXZdV0GdWQ==|ecdh\-sha2\-5pPrSUQtIaTjUSt5VZNBjg==|ecdh\-sha2\-4MHB\+NBt3AlaSRQ7MnB4cg==|ecdh\-sha2\-1\.3\.132\.0\.33|ecdh\-sha2\-1\.3\.132\.0\.27|ecdh\-sha2\-1\.3\.132\.0\.26|ecdh\-sha2\-1\.3\.132\.0\.1|ecdh\-sha2\-1\.2\.840\.10045\.3\.1\.1|diffie\-hellman\-group14\-sha1|diffie\-hellman\-group1\-sha1|diffie\-hellman\-group\-exchange\-sha1)(?=[,\s\"]) 414 scope: invalid.deprecated.kex-algorithm.ssh.crypto 415 ssh-key-types: 416 - match: \b(?:x509v3\-sign\-rsa\-sha512@ssh\.com|x509v3\-sign\-rsa\-sha384@ssh\.com|x509v3\-sign\-rsa\-sha256@ssh\.com|x509v3\-sign\-rsa\-sha256@ssh\.com|x509v3\-sign\-rsa\-sha256|x509v3\-sign\-rsa\-sha224@ssh\.com|x509v3\-sign\-dss\-sha512@ssh\.com|x509v3\-sign\-dss\-sha384@ssh\.com|x509v3\-sign\-dss\-sha256@ssh\.com|x509v3\-sign\-dss\-sha224@ssh\.com|x509v3\-rsa2048\-sha256|x509v3\-ecdsa\-sha2\-nistp521|x509v3\-ecdsa\-sha2\-nistp384|x509v3\-ecdsa\-sha2\-nistp256|x509v3\-ecdsa\-sha2\-1\.3\.132\.0\.10|webauthn\-sk\-ecdsa\-sha2\-nistp256@openssh\.com|ssh\-rsa\-sha512@ssh\.com|ssh\-rsa\-sha384@ssh\.com|ssh\-rsa\-sha256@ssh\.com|ssh\-rsa\-sha256@ssh\.com|ssh\-rsa\-sha2\-512|ssh\-rsa\-sha2\-256|ssh\-rsa|ssh\-gost\-2012\-512|ssh\-gost\-2012\-256|ssh\-gost\-2001|ssh\-ed448|ssh\-ed25519\-cert\-v01@openssh\.com|ssh\-ed25519|spi\-sign\-rsa|sk\-ecdsa\-sha2\-nistp256@openssh\.com|sk\-ecdsa\-sha2\-nistp256\-cert\-v01@openssh\.com|rsa\-sha2\-512\-cert\-v01@openssh\.com|rsa\-sha2\-512|rsa\-sha2\-256\-cert\-v01@openssh\.com|rsa\-sha2\-256|eddsa\-e521\-shake256@libassh\.org|eddsa\-e382\-shake256@libassh\.org|ecdsa\-sha2\-nistt571|ecdsa\-sha2\-nistp521\-cert\-v01@openssh\.com|ecdsa\-sha2\-nistp521|ecdsa\-sha2\-nistp384\-cert\-v01@openssh\.com|ecdsa\-sha2\-nistp384|ecdsa\-sha2\-nistp256\-cert\-v01@openssh\.com|ecdsa\-sha2\-nistp256|ecdsa\-sha2\-nistk409|ecdsa\-sha2\-nistk283|ecdsa\-sha2\-nistk233|ecdsa\-sha2\-nistk163|ecdsa\-sha2\-nistb409|ecdsa\-sha2\-curve25519|ecdsa\-sha2\-1\.3\.132\.0\.10\-cert\-v01@openssh\.com|ecdsa\-sha2\-1\.3\.132\.0\.10|dsa3072\-sha256@libassh\.org|dsa2048\-sha256@libassh\.org|dsa2048\-sha224@libassh\.org)(?=[,\s\"]) 417 scope: support.type.key-type.ssh.crypto 418 - match: \b(?:x509v3\-ssh\-rsa|x509v3\-ssh\-dss|x509v3\-sign\-rsa\-sha1|x509v3\-sign\-rsa|x509v3\-sign\-dss\-sha1|x509v3\-sign\-dss|ssh\-xmss@openssh\.com|ssh\-xmss\-cert\-v01@openssh\.com|ssh\-rsa1|ssh\-rsa\-cert\-v01@openssh\.com|ssh\-rsa\-cert\-v00@openssh\.com|ssh\-dss\-sha512@ssh\.com|ssh\-dss\-sha384@ssh\.com|ssh\-dss\-sha256@ssh\.com|ssh\-dss\-sha224@ssh\.com|ssh\-dss\-cert\-v01@openssh\.com|ssh\-dss\-cert\-v00@openssh\.com|ssh\-dss|ssh\-dsa|spki\-sign\-rsa|spki\-sign\-dss|pgp\-sign\-rsa|pgp\-sign\-dss|null|ecdsa\-sha2\-nistp224|ecdsa\-sha2\-nistp192|ecdsa\-sha2\-nistb233)(?=[,\s\"]) 419 scope: invalid.deprecated.key-type.ssh.crypto 420 ssh-mac-algorithms: 421 - match: \b(?:umac\-96@openssh\.com|umac\-64@openssh\.com|umac\-64\-etm@openssh\.com|umac\-32@openssh\.com|umac\-128@openssh\.com|umac\-128\-etm@openssh\.com|umac\-128|hmac\-sha512@ssh\.com|hmac\-sha512|hmac\-sha3\-512|hmac\-sha3\-384|hmac\-sha3\-256|hmac\-sha3\-224|hmac\-sha256@ssh\.com|hmac\-sha256\-96@ssh\.com|hmac\-sha256|hmac\-sha2\-56|hmac\-sha2\-512\-etm@openssh\.com|hmac\-sha2\-512\-96\-etm@openssh\.com|hmac\-sha2\-512|hmac\-sha2\-384|hmac\-sha2\-256\-etm@openssh\.com|hmac\-sha2\-256\-96\-etm@openssh\.com|hmac\-sha2\-256|hmac\-sha2\-224|crypticore\-mac@ssh\.com|chacha20\-poly1305@openssh\.com|cbcmac\-twofish|cbcmac\-aes|aes256\-gcm|aes128\-gcm|AEAD_AES_256_GCM|AEAD_AES_128_GCM)(?=[,\s\"]) 422 scope: support.function.mac-algorithm.ssh.crypto 423 - match: \b(?:sha1\-8|sha1|ripemd160\-8|ripemd160|none|md5\-8|md5|hmac\-sha2\-512\-96|hmac\-sha2\-256\-96|hmac\-sha1\-etm@openssh\.com|hmac\-sha1\-96\-etm@openssh\.com|hmac\-sha1\-96|hmac\-sha1|hmac\-ripemd160@openssh\.com|hmac\-ripemd160\-etm@openssh\.com|hmac\-ripemd160\-96|hmac\-ripemd160|hmac\-ripemd|hmac\-md5\-etm@openssh\.com|hmac\-md5\-96\-etm@openssh\.com|hmac\-md5\-96|hmac\-md5|cbcmac\-rijndael|cbcmac\-des|cbcmac\-blowfish|cbcmac\-3des)(?=[,\s\"]) 424 scope: invalid.deprecated.mac-algorithm.ssh.crypto 425extends: SSH Common.sublime-syntax 426hidden: true 427hidden_file_extensions: 428- syntax_test_crypto 429name: SSH Crypto 430scope: text.ssh.crypto 431version: 2 432variables: 433 zero_to_65535: (?:6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])