├── .python-version ├── Authorized Keys.sublime-syntax ├── Commands.sublime-commands ├── Comment.tmPreferences ├── Embedded Bash.sublime-syntax ├── Embeddings ├── Shell (for SSH Config KnownHostsCommand).sublime-syntax ├── Shell (for SSH Config LocalCommand).sublime-syntax ├── Shell (for SSH Config ProxyCommand).sublime-syntax ├── Shell (for SSH Config).sublime-syntax ├── Shell (for SSHD Config AuthorizedKeysCommand).sublime-syntax └── Shell (for SSHD Config AuthorizedPrincipalsCommand).sublime-syntax ├── Known Hosts.sublime-syntax ├── PEM.sublime-syntax ├── PEM.tmPreferences ├── SSH Common.sublime-syntax ├── SSH Config.sublime-settings ├── SSH Config.sublime-syntax ├── SSH Crypto.sublime-syntax ├── SSHD Config.sublime-syntax ├── Snippets ├── host.sublime-snippet └── match.sublime-snippet ├── Support ├── Authorized Keys.sublime-completions ├── Authorized Keys.sublime-settings ├── Config Values.sublime-completions ├── Indentation Rules SSH Config.tmPreferences ├── Indentation Rules SSHD Config.tmPreferences ├── Known Hosts.sublime-settings ├── SSH Config - Match Conditions.sublime-completions ├── SSH Config.sublime-completions ├── SSHD Config - Match Conditions.sublime-completions ├── SSHD Config.sublime-completions ├── Symbol List Key Annotation.tmPreferences ├── Symbol List SSH Aliases.tmPreferences ├── Symbol List SSH Hosts.tmPreferences ├── Symbol List SSHD Keyword.tmPreferences ├── Symbol List known_hosts Hostnames.tmPreferences ├── Symbol List known_hosts IPs.tmPreferences ├── ciphers.sublime-completions ├── kex-algorithms.sublime-completions ├── key-types.sublime-completions └── mac-algorithms.sublime-completions ├── main.py ├── messages ├── 2.0.0.md ├── 2.1.0.md ├── 2.2.0.md ├── 2.3.0.md ├── 3.0.0.md ├── 3.6.0.md ├── 4.0.0.md ├── 4.1.0.md ├── 4.1.1.md ├── 5.0.0.md └── 6.0.0.md └── messaging.json /.python-version: -------------------------------------------------------------------------------- 1 | 3.8 2 | -------------------------------------------------------------------------------- /Authorized Keys.sublime-syntax: -------------------------------------------------------------------------------- 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 6 | name: Authorized Keys 7 | scope: text.authorized_keys 8 | version: 2 9 | extends: SSH Crypto.sublime-syntax 10 | 11 | file_extensions: 12 | - authorized_keys 13 | - pub 14 | 15 | hidden_file_extensions: 16 | - authorized_keys2 17 | 18 | contexts: 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 | -------------------------------------------------------------------------------- /Commands.sublime-commands: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "caption": "SSH Config: Open SSH Config File", 4 | "command": "open_ssh_config_file", 5 | }, 6 | { 7 | "caption": "SSH Config: Open SSHD Config File", 8 | "command": "open_sshd_config_file", 9 | }, 10 | { 11 | "caption": "SSH Config: Open Authorized Keys File", 12 | "command": "open_authorized_keys_file", 13 | }, 14 | { 15 | "caption": "SSH Config: Open Known Hosts File", 16 | "command": "open_known_hosts_file", 17 | }, 18 | { 19 | "caption": "SSH Config: Settings", 20 | "command": "edit_settings", 21 | "args": { 22 | "base_file": "${packages}/SSH Config/SSH Config.sublime-settings", 23 | "default": "{\n\t$0\n}\n", 24 | } 25 | }, 26 | ] 27 | -------------------------------------------------------------------------------- /Comment.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | 9 | source.pem, 10 | source.ssh_config, 11 | source.sshd_config, 12 | text.authorized_keys, 13 | text.known_hosts 14 | 15 | settings 16 | 17 | shellVariables 18 | 19 | 20 | name 21 | TM_COMMENT_START 22 | value 23 | # 24 | 25 | 26 | name 27 | TM_COMMENT_START_2 28 | value 29 | ; 30 | 31 | 32 | 33 | uuid 34 | 4a9bc95a-75b5-4d4f-920e-41a4583ca30b 35 | 36 | 37 | -------------------------------------------------------------------------------- /Embedded Bash.sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | # See http://www.sublimetext.com/docs/3/syntax.html 4 | scope: source.shell.bash.ssh_config 5 | version: 2 6 | hidden: true 7 | 8 | extends: Packages/ShellScript/Bash.sublime-syntax 9 | 10 | contexts: 11 | main: 12 | - meta_prepend: true 13 | - include: ssh-config-none 14 | 15 | parameter-expansions: 16 | - meta_prepend: true 17 | - include: ssh-config-char-escapes 18 | 19 | string-prototype: 20 | - meta_prepend: true 21 | - include: ssh-config-char-escapes 22 | 23 | ssh-config-char-escapes: 24 | - match: '{{ssh_config_character_escapes}}' 25 | scope: constant.character.escape.ssh_config 26 | 27 | ssh-config-none: 28 | - match: none 29 | scope: constant.language.set.ssh_config 30 | pop: true 31 | #- include: scope:source.ssh_config#pop-nl-as-value 32 | 33 | variables: 34 | # requires Packages PR #4024 35 | # lazy escaping from heredoc as shell maybe indented 36 | no_indent: ^\s* 37 | tab_indent: ^\s* 38 | ssh_config_character_escapes: '%[%hpr]' 39 | -------------------------------------------------------------------------------- /Embeddings/Shell (for SSH Config KnownHostsCommand).sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | scope: source.shell.embedded.ssh.knownhostscommand 4 | version: 2 5 | hidden: true 6 | 7 | extends: Shell (for SSH Config).sublime-syntax 8 | 9 | variables: 10 | ssh_config_character_escapes: (?:%[%CdfHhIiKkLlnprtu]) 11 | -------------------------------------------------------------------------------- /Embeddings/Shell (for SSH Config LocalCommand).sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | scope: source.shell.embedded.ssh.localcommand 4 | version: 2 5 | hidden: true 6 | 7 | extends: Shell (for SSH Config).sublime-syntax 8 | 9 | variables: 10 | ssh_config_character_escapes: (?:%[%CdhikLlnpruT]) 11 | -------------------------------------------------------------------------------- /Embeddings/Shell (for SSH Config ProxyCommand).sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | scope: source.shell.embedded.ssh.proxycommand 4 | version: 2 5 | hidden: true 6 | 7 | extends: Shell (for SSH Config).sublime-syntax 8 | 9 | variables: 10 | ssh_config_character_escapes: (?:%[%hnpr]) 11 | -------------------------------------------------------------------------------- /Embeddings/Shell (for SSH Config).sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | scope: source.shell.embedded.ssh 4 | version: 2 5 | hidden: true 6 | 7 | extends: Packages/ShellScript/Shell-Unix-Generic.sublime-syntax 8 | 9 | contexts: 10 | 11 | parameter-expansions: 12 | - meta_prepend: true 13 | - include: ssh-config-char-escapes 14 | 15 | string-prototype: 16 | - meta_prepend: true 17 | - include: ssh-config-char-escapes 18 | 19 | ssh-config-char-escapes: 20 | - match: '%%' 21 | scope: constant.character.escape.ssh 22 | - match: '{{ssh_config_character_escapes}}' 23 | scope: constant.other.placeholder.ssh 24 | 25 | variables: 26 | # lazy escaping from heredoc as shell maybe indented 27 | no_indent: ^\s* 28 | tab_indent: ^\s* 29 | ssh_config_character_escapes: (?:%[%CdhikLlnpru]) 30 | -------------------------------------------------------------------------------- /Embeddings/Shell (for SSHD Config AuthorizedKeysCommand).sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | scope: source.shell.embedded.ssh.authorizedkeyscommand 4 | version: 2 5 | hidden: true 6 | 7 | extends: Shell (for SSH Config).sublime-syntax 8 | 9 | variables: 10 | ssh_config_character_escapes: (?:%[%CDfhkstUu]) 11 | -------------------------------------------------------------------------------- /Embeddings/Shell (for SSHD Config AuthorizedPrincipalsCommand).sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | scope: source.shell.embedded.ssh.authorizedprincipalscommand 4 | version: 2 5 | hidden: true 6 | 7 | extends: Shell (for SSH Config).sublime-syntax 8 | 9 | variables: 10 | ssh_config_character_escapes: (?:%[%CDFfhiKksTtUu]) 11 | -------------------------------------------------------------------------------- /Known Hosts.sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | # https://www.sublimetext.com/docs/syntax.html 4 | # https://man7.org/linux/man-pages/man8/sshd.8.html#SSH_KNOWN_HOSTS_FILE_FORMAT 5 | # https://man.openbsd.org/sshd.8#SSH_KNOWN_HOSTS_FILE_FORMAT 6 | name: Known Hosts 7 | scope: text.known_hosts 8 | version: 2 9 | extends: SSH Crypto.sublime-syntax 10 | 11 | file_extensions: 12 | - known_hosts 13 | 14 | hidden_file_extensions: 15 | - known_hosts.old 16 | 17 | contexts: 18 | main: 19 | - include: comments-number-sign 20 | - match: ^((@)(?:revoked|cert-authority))? 21 | captures: 22 | 1: meta.annotation.known_hosts 23 | variable.annotation.known_hosts 24 | 2: punctuation.definition.annotation.known_hosts 25 | push: 26 | - meta_scope: meta.line.known-host.known_hosts 27 | - include: pop-before-nl 28 | - include: pop-nl 29 | - include: punctuation-comma-sequence 30 | - include: ssh-fingerprint-with-label 31 | - include: ssh-key-types 32 | - include: hostname-or-ip-value 33 | 34 | hostname-or-ip-value: 35 | # Negation 36 | - include: operator-exclamation 37 | 38 | # Bracketed host 39 | - match: \[ 40 | scope: punctuation.definition.string.begin.known_hosts 41 | push: 42 | - meta_scope: meta.brackets.host.known_hosts 43 | - match: (\])(?:(:)({{zero_to_65535}}))? 44 | captures: 45 | 1: punctuation.definition.string.end.known_hosts 46 | 2: punctuation.separator.sequence.known_hosts 47 | 3: meta.number.integer.decimal.known_hosts 48 | constant.numeric.port-number.known_hosts 49 | pop: 1 50 | - include: operator-exclamation 51 | - include: ip-addresses 52 | - match: '' 53 | push: 54 | - meta_scope: meta.string.host.known_hosts 55 | string.quoted.other.known_hosts 56 | - match: (?=,|\]) 57 | pop: 1 58 | - include: wildcards 59 | - include: punctuation-dot-sequence 60 | 61 | # IP 62 | - include: ip-addresses 63 | 64 | # Hashed host 65 | - match: (\|)(\d+)(\|)({{base64_char}}{27}=)(\|)({{base64_char}}{27}=) 66 | scope: meta.string.host.obfuscated.known_hosts 67 | captures: 68 | 1: punctuation.definition.known_hosts 69 | 2: constant.numeric.integer.algorithm.known_hosts 70 | 3: punctuation.definition.known_hosts 71 | 4: string.unquoted.salt.known_hosts 72 | 5: punctuation.definition.known_hosts 73 | 6: string.unquoted.hash.known_hosts 74 | 75 | # Normal host 76 | - match: (?=\S) 77 | push: hostname 78 | 79 | hostname: 80 | - meta_content_scope: meta.string.host.known_hosts 81 | string.unquoted.known_hosts 82 | - match: (?=[,\[\s]) 83 | pop: 1 84 | - include: wildcards 85 | - include: punctuation-dot-sequence 86 | -------------------------------------------------------------------------------- /PEM.sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | # Not strictly just PEM. Includes some other stuff, just to be helpful. 4 | 5 | # https://www.sublimetext.com/docs/syntax.html 6 | # https://datatracker.ietf.org/doc/html/rfc7468 (PEM) 7 | # https://datatracker.ietf.org/doc/html/rfc4716 (OpenSSH) 8 | # https://datatracker.ietf.org/doc/html/rfc4880 (OpenPGP) 9 | 10 | name: Private Encrypted Mail (PEM) Key 11 | scope: source.pem 12 | version: 2 13 | extends: SSH Common.sublime-syntax 14 | 15 | file_extensions: 16 | - pem 17 | 18 | hidden_file_extensions: 19 | - cer 20 | - cert 21 | - crt 22 | - id_dsa 23 | - id_ed25519 24 | - id_ed448 25 | - id_eddsa 26 | - id_rsa 27 | 28 | first_line_match: |- 29 | ^(?x: 30 | (-{4}[ -]) 31 | BEGIN [ ] 32 | ( (?:[0-9A-Z -]+[ ])? (?: PUBLIC | PRIVATE ) [ ] KEY 33 | | (?:[0-9A-Z -]+[ ])? CERTIFICATE (?:[ ] REQUEST )? 34 | | (?:[0-9A-Z -]+[ ])? PARAMETERS 35 | | X509 [ ] CRL 36 | | PKCS7 37 | | PKCS [ ] \#7 [ ] SIGNED [ ] DATA 38 | | CMS 39 | | PGP [ ] MESSAGE (?:,[ ] PART [ ] \d+(?:/\d+)?)? 40 | | PGP [ ] (?: PUBLIC | PRIVATE ) [ ] KEY [ ] BLOCK 41 | | PGP [ ] SIGNATURE 42 | ) 43 | ([ -]-{4}) 44 | ) 45 | 46 | contexts: 47 | main: 48 | - include: comments-number-sign 49 | - match: |- 50 | ^(?x: 51 | (-{4}[ -]) 52 | BEGIN [ ] 53 | ( (?:[0-9A-Z -]+[ ])? (?: PUBLIC | PRIVATE ) [ ] KEY 54 | | (?:[0-9A-Z -]+[ ])? CERTIFICATE (?:[ ] REQUEST )? 55 | | (?:[0-9A-Z -]+[ ])? PARAMETERS 56 | | X509 [ ] CRL 57 | | PKCS7 58 | | PKCS [ ] \#7 [ ] SIGNED [ ] DATA 59 | | CMS 60 | | PGP [ ] MESSAGE (?:,[ ] PART [ ] \d+(?:/\d+)?)? 61 | | PGP [ ] (?: PUBLIC | PRIVATE ) [ ] KEY [ ] BLOCK 62 | | PGP [ ] SIGNATURE 63 | ) 64 | ([ -]-{4}) 65 | ) 66 | scope: punctuation.section.block.begin.pem 67 | push: pem-key 68 | - include: setext-headings 69 | 70 | pem-key: 71 | - meta_scope: meta.block.pem 72 | - match: ^\1END \2\3 73 | scope: punctuation.section.block.end.pem 74 | pop: 1 75 | - include: comments-number-sign 76 | - match: ^{{base64_char}}{1,100}(={0,3})?$ 77 | scope: string.unquoted.pem 78 | captures: 79 | 1: punctuation.definition.string.end.pem 80 | - include: headers 81 | 82 | headers: 83 | - match: ^(?i:(Comment))(:) 84 | captures: 85 | 1: keyword.other.comment.pem 86 | 2: punctuation.separator.key-value.pem 87 | push: 88 | - meta_content_scope: comment.line.pem 89 | - include: header-end 90 | - match: ^((x-)?[\w-]+)(:) 91 | captures: 92 | 1: meta.mapping.key.pem keyword.other.pem 93 | 2: variable.annotation.pem 94 | 3: punctuation.separator.key-value.pem 95 | push: header-value 96 | 97 | header-value: 98 | - meta_scope: meta.mapping.pem 99 | - meta_content_scope: meta.mapping.value.pem 100 | - include: header-end 101 | - include: punctuation-comma-sequence 102 | - match: = 103 | scope: punctuation.separator.key-value.pem 104 | - match: '\b(?x: ENCRYPTED | MIC-ONLY | MIC-CLEAR )\b' 105 | scope: storage.modifier.pem 106 | - match: |- 107 | \b(?x: 108 | ( AES-(?:128|256)-CBC 109 | | DES-(?:EDE3-)?CBC 110 | )\b 111 | ( (,) .+ )? 112 | ) 113 | captures: 114 | 1: meta.function-call.identifier.pem 115 | support.function.cipher.ssh.crypto 116 | 2: meta.function-call.arguments.pem 117 | 3: punctuation.section.arguments.begin.pem 118 | 119 | header-end: 120 | - match: \\\r?\n 121 | scope: punctuation.separator.continuation.line.pem 122 | push: 123 | - match: ^ 124 | pop: 1 125 | - match: (?=$) 126 | pop: 1 127 | 128 | setext-headings: 129 | - match: ^(?:=+|(?=\S)) 130 | branch_point: maybe-heading 131 | branch: 132 | - setext-heading 133 | - not-heading 134 | 135 | setext-heading: 136 | - meta_scope: markup.heading.pem 137 | - meta_content_scope: entity.name.section.pem 138 | - match: ^(={5,})[ \t]*$(\n?) 139 | captures: 140 | 1: punctuation.definition.heading.setext.pem 141 | 2: meta.whitespace.newline.pem 142 | pop: 1 143 | - match: ^(?!=+)$ 144 | fail: maybe-heading 145 | 146 | not-heading: 147 | - match: '' 148 | pop: 1 149 | -------------------------------------------------------------------------------- /PEM.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | scope 5 | source.pem entity.name.section 6 | settings 7 | 8 | showInSymbolList 9 | 1 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /SSH Common.sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | # This file is some kind of internal library which is used to store 4 | # common rules which are used by the visible syntax files. 5 | name: SSH Common 6 | scope: text.ssh.common 7 | version: 2 8 | hidden: true 9 | 10 | contexts: 11 | main: 12 | - include: comments-number-sign 13 | 14 | ###[ COMMENTS ]################################################################ 15 | 16 | comments: 17 | - include: comments-number-sign 18 | - include: comments-semicolon 19 | 20 | comments-number-sign: 21 | - match: ^\s*(#+) 22 | captures: 23 | 1: comment.line.number-sign.ssh.common punctuation.definition.comment.ssh.common 24 | push: 25 | - meta_content_scope: comment.line.number-sign.ssh.common 26 | - match: \n 27 | scope: comment.line.number-sign.ssh.common 28 | pop: true 29 | 30 | comments-semicolon: 31 | - match: ^\s*(;+) 32 | captures: 33 | 1: comment.line.semi-colon.ssh.common punctuation.definition.comment.ssh.common 34 | push: 35 | - meta_content_scope: comment.line.semi-colon.ssh.common 36 | - include: pop-nl 37 | 38 | ###[ COMPONENTS ]############################################################## 39 | 40 | operator-exclamation: 41 | - match: '!' 42 | scope: keyword.operator.logical.ssh.common 43 | 44 | wildcards: 45 | - match: \* 46 | scope: constant.other.wildcard.asterisk.ssh.common 47 | - match: \? 48 | scope: constant.other.wildcard.questionmark.ssh.common 49 | 50 | punctuation-comma-sequence: 51 | - match: ',' 52 | scope: punctuation.separator.sequence.ssh.common 53 | 54 | punctuation-dot-sequence: 55 | - match: \. 56 | scope: punctuation.separator.sequence.ssh.common 57 | 58 | punctuation-at: 59 | - match: '@' 60 | scope: punctuation.separator.sequence.ssh.common 61 | 62 | ssh-fingerprint: 63 | - match: '{{ssh_fingerprint}}' 64 | scope: variable.other.fingerprint.ssh.common 65 | 66 | ssh-fingerprint-with-label: 67 | - match: '{{ssh_fingerprint}}' 68 | scope: variable.other.fingerprint.ssh.common 69 | push: expect-fingerprint-label 70 | 71 | expect-fingerprint-label: 72 | - include: pop-before-nl 73 | - match: (?=\S) 74 | push: 75 | - meta_scope: meta.annotation.identifier.ssh.common 76 | string.unquoted.ssh.common 77 | - match: '(?=[ \t]*$)' 78 | pop: 1 79 | - include: punctuation-at 80 | 81 | time-values: 82 | # https://man.openbsd.org/sshd_config.5#TIME_FORMATS 83 | # seconds, minutes, hours, days, weeks 84 | - match: \b(?=[\dsmhdw]*\d[smhdw][\s,"]) 85 | push: 86 | - meta_scope: meta.constant.time.ssh.common 87 | meta.number.integer.decimal.ssh.common 88 | - match: (?=[\s,"]) 89 | pop: 1 90 | - match: (\d+)([smhdw]) 91 | captures: 92 | 1: constant.numeric.value.ssh.common 93 | 2: constant.numeric.suffix.ssh.common 94 | 95 | bytes-values: 96 | - match: \b(\d+)([KMG])(?=[\s,"]) 97 | scope: meta.constant.bytes.ssh.common 98 | meta.number.integer.other.ssh.common 99 | captures: 100 | 1: constant.numeric.value.ssh.common 101 | 2: constant.numeric.suffix.ssh.common 102 | 103 | mac-addresses: 104 | - match: (?:[0-9a-fA-F]{2}:){5}(?:[0-9a-fA-F]{2}) 105 | scope: entity.name.constant.mac-address.ssh.common 106 | 107 | ipv4: 108 | - match: '\b{{ipv4}}\b' 109 | scope: meta.number.integer.other.ssh.common constant.numeric.ip-address.v4.ssh.common 110 | 111 | ipv6: 112 | - match: '{{ipv6}}' 113 | scope: meta.number.integer.other.ssh.common constant.numeric.ip-address.v6.ssh.common 114 | 115 | ipv6-square-bracket: 116 | - match: (\[){{ipv6}}(\]) 117 | scope: meta.number.integer.other.ssh.common constant.numeric.ip-address.v6.ssh.common 118 | captures: 119 | 1: punctuation.definition.constant.begin.ssh.common 120 | 2: punctuation.definition.constant.end.ssh.common 121 | 122 | ip-addresses: 123 | - include: ipv6 124 | - include: ipv4 125 | 126 | ipv4-with-cidr: 127 | - match: \b({{ipv4}})(?:(/)({{zero_to_32}}))?\b 128 | captures: 129 | 1: meta.number.integer.other.ssh.common constant.numeric.ip-address.v4.ssh.common 130 | 2: punctuation.separator.sequence.ssh.common 131 | 3: constant.other.range.ssh.common 132 | 133 | ipv6-with-cidr: 134 | - match: ({{ipv6}})(?:(/)({{zero_to_128}})\b)? 135 | captures: 136 | 1: meta.number.integer.other.ssh.common constant.numeric.ip-address.v6.ssh.common 137 | 2: punctuation.separator.sequence.ssh.common 138 | 3: constant.other.range.ssh.common 139 | 140 | ip-addresses-with-cidr: 141 | - include: ipv6-with-cidr 142 | - include: ipv4-with-cidr 143 | 144 | port-numbers: 145 | - match: \b{{zero_to_65535}}(?![\w:]) 146 | scope: meta.number.integer.decimal.ssh.common 147 | constant.numeric.port-number.ssh.common 148 | 149 | match-all: 150 | - match: '\b(?xi: all )\b' 151 | scope: constant.language.boolean.true.ssh.common 152 | 153 | none: 154 | - match: \bnone\b 155 | scope: constant.language.null.ssh.common 156 | 157 | any: 158 | - match: \bany\b 159 | scope: constant.language.set.ssh.common 160 | 161 | boolean: 162 | - match: \byes\b 163 | scope: constant.language.boolean.true.ssh.common 164 | - match: \bno\b 165 | scope: constant.language.boolean.false.ssh.common 166 | 167 | boolean-with-typing: 168 | - include: boolean 169 | # Consume while typing as well, but unscoped 170 | - match: \b(?:ye?|n)\b 171 | 172 | log-level: 173 | - match: '\b(?x: QUIET | FATAL | ERROR | INFO | DEBUG[1-3]? )\b' 174 | scope: constant.language.log-level.ssh.common 175 | 176 | possibly-quoted-value: 177 | - meta_content_scope: meta.mapping.value.ssh.common 178 | - match: '"' 179 | scope: punctuation.definition.string.begin.ssh.common 180 | push: 181 | - meta_scope: string.quoted.double.ssh.common 182 | - match: (")(?:\s*(\S.*))? 183 | captures: 184 | 1: punctuation.definition.string.end.ssh.common 185 | 2: invalid.illegal.ssh.common 186 | pop: 1 187 | - match: \n|$ 188 | scope: invalid.illegal.unclosed-string.ssh.common 189 | pop: 2 190 | - match: (?=\S) 191 | push: 192 | - meta_content_scope: string.unquoted.ssh.common 193 | - include: pop-before-nl 194 | - include: pop-nl 195 | 196 | string-patterns: 197 | # https://man7.org/linux/man-pages/man5/ssh_config.5.html#PATTERNS 198 | # https://man.openbsd.org/ssh_config.5#PATTERNS 199 | # https://man7.org/linux/man-pages/man5/sshd_config.5.html#PATTERNS 200 | # https://man.openbsd.org/sshd_config.5#PATTERNS 201 | - include: punctuation-comma-sequence 202 | - include: operator-exclamation 203 | - match: '"' 204 | scope: punctuation.definition.string.begin.ssh.common 205 | push: 206 | - meta_content_scope: string.quoted.double.ssh.common 207 | - match: '"' 208 | scope: punctuation.definition.string.end.ssh.common 209 | pop: 1 210 | - include: wildcards 211 | - match: (?=\S) 212 | push: 213 | - meta_content_scope: string.unquoted.ssh.common 214 | - match: (?=[,!\s]) 215 | pop: 1 216 | - include: wildcards 217 | 218 | paths: 219 | # This is just heuristic. Expect failures. 220 | - match: (?=~?[\w.\-?*${}%]*/[\w.\-?*${}%]?) 221 | push: 222 | - meta_scope: meta.path.ssh.common 223 | entity.name.ssh.common 224 | - match: (?=[\s,"]) 225 | pop: 1 226 | - match: ~[\w\-.]* 227 | scope: variable.language.home.ssh.common 228 | - match: (/)(?:(\.{1,2})(?=/)|\.(?!/))? 229 | captures: 230 | 1: punctuation.separator.path.ssh.common 231 | 2: constant.other.placeholder.ssh.common 232 | - match: \.(?=[\w*?%]) 233 | scope: punctuation.separator.sequence.ssh.common 234 | - include: wildcards 235 | - include: tokens 236 | - include: environment-variables 237 | 238 | none-command-values: 239 | - match: \s*(none)\b[ \t]*$ 240 | captures: 241 | 1: constant.language.null.ssh.common 242 | - match: \s*((")(none)("))[ \t]*$ 243 | captures: 244 | 1: string.quoted.double.ssh.common 245 | 2: punctuation.definition.string.begin.ssh.common 246 | 3: constant.language.null.ssh.common 247 | 4: punctuation.definition.string.end.ssh.common 248 | 249 | tokens: [] 250 | environment-variables: [] 251 | 252 | ###[ PROTOTYPE ]############################################################### 253 | 254 | pop-nl: 255 | - match: \n 256 | pop: 1 257 | 258 | pop-before-nl: 259 | - match: (?=\n) 260 | pop: 1 261 | 262 | ############################################################################### 263 | 264 | variables: 265 | base64_char: '[a-zA-Z0-9+/]' 266 | ssh_fingerprint: (?:AAAA(?:E2V|[BC]3N){{base64_char}}+={0,3}) 267 | # ipv4_basic: (?:(?:\d{1,3}\.){3}\d{1,3}) 268 | # ipv6_basic: (?i:(?:[a-f0-9:]+:+)+[a-f0-9]+) 269 | zero_to_32: (?:3[0-2]|[12][0-9]|[0-9]) 270 | zero_to_128: (?:12[0-8]|1[01][0-9]|[1-9][0-9]|[0-9]) 271 | zero_to_255: (?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:[1-9][0-9])|[0-9]) 272 | 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]) 273 | ipv4: (?:(?:{{zero_to_255}}\.){3}{{zero_to_255}}) 274 | ipv6: |- 275 | (?xi: 276 | (?:::(?:ffff(?::0{1,4}){0,1}:){0,1}{{ipv4}}) # ::255.255.255.255 ::ffff:255.255.255.255 ::ffff:0:255.255.255.255 (IPv4-mapped IPv6 addresses and IPv4-translated addresses) 277 | |(?:(?:[0-9a-f]{1,4}:){1,4}:{{ipv4}}) # 2001:db8:3:4::192.0.2.33 64:ff9b::192.0.2.33 (IPv4-Embedded IPv6 Address) 278 | |(?:fe80:(?::[0-9a-f]{1,4}){0,4}%[0-9a-z]{1,}) # fe80::7:8%eth0 fe80::7:8%1 (link-local IPv6 addresses with zone index) 279 | |(?:(?:[0-9a-f]{1,4}:){7,7} [0-9a-f]{1,4}) # 1:2:3:4:5:6:7:8 280 | | (?:[0-9a-f]{1,4}: (?::[0-9a-f]{1,4}){1,6}) # 1::3:4:5:6:7:8 1::3:4:5:6:7:8 1::8 281 | |(?:(?:[0-9a-f]{1,4}:){1,2}(?::[0-9a-f]{1,4}){1,5}) # 1::4:5:6:7:8 1:2::4:5:6:7:8 1:2::8 282 | |(?:(?:[0-9a-f]{1,4}:){1,3}(?::[0-9a-f]{1,4}){1,4}) # 1::5:6:7:8 1:2:3::5:6:7:8 1:2:3::8 283 | |(?:(?:[0-9a-f]{1,4}:){1,4}(?::[0-9a-f]{1,4}){1,3}) # 1::6:7:8 1:2:3:4::6:7:8 1:2:3:4::8 284 | |(?:(?:[0-9a-f]{1,4}:){1,5}(?::[0-9a-f]{1,4}){1,2}) # 1::7:8 1:2:3:4:5::7:8 1:2:3:4:5::8 285 | |(?:(?:[0-9a-f]{1,4}:){1,6} :[0-9a-f]{1,4}) # 1::8 1:2:3:4:5:6::8 1:2:3:4:5:6::8 286 | |(?:(?:[0-9a-f]{1,4}:){1,7} :) # 1:: 1:2:3:4:5:6:7:: 287 | |(?::(?:(?::[0-9a-f]{1,4}){1,7}|:)) # ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 :: 288 | ) 289 | -------------------------------------------------------------------------------- /SSH Config.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "default_file_locations": { 3 | "windows": { 4 | "ssh_config": "%USERPROFILE%\\.ssh\\config", 5 | "sshd_config": "%PROGRAMDATA%\\ssh\\sshd_config", 6 | "known_hosts": "%USERPROFILE%\\.ssh\\known_hosts", 7 | "authorized_keys": "%USERPROFILE%\\.ssh\\authorized_keys", 8 | }, 9 | "osx": { 10 | "ssh_config": "~/.ssh/config", 11 | "sshd_config": "/etc/ssh/sshd_config", 12 | "known_hosts": "~/.ssh/known_hosts", 13 | "authorized_keys": "~/.ssh/authorized_keys", 14 | }, 15 | "linux": { 16 | "ssh_config": "~/.ssh/config", 17 | "sshd_config": "/etc/ssh/sshd_config", 18 | "known_hosts": "~/.ssh/known_hosts", 19 | "authorized_keys": "~/.ssh/authorized_keys", 20 | }, 21 | }, 22 | 23 | // A map of file types to their place on disk to override 24 | // the default locations 25 | // Map keys: ssh_config, sshd_config, known_hosts, 26 | // authorized_keys 27 | "file_locations": null, 28 | 29 | // Tell the "Open" command for SSH Config to apply the syntax 30 | // highlighting, even if the file extension is not configured. 31 | "force_ssh_config_syntax": true, 32 | } 33 | -------------------------------------------------------------------------------- /SSH Config.sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | # https://www.sublimetext.com/docs/syntax.html 4 | # https://man7.org/linux/man-pages/man5/ssh_config.5.html 5 | # https://man.openbsd.org/ssh_config.5 6 | name: SSH Config 7 | scope: source.ssh_config 8 | version: 2 9 | extends: SSH Crypto.sublime-syntax 10 | 11 | file_extensions: 12 | - ssh_config 13 | 14 | contexts: 15 | main: 16 | - include: comments 17 | - include: host-block 18 | - include: match 19 | - include: naked-parameters 20 | 21 | parameters: 22 | - include: comments 23 | - include: parameter-hostname 24 | - include: parameter-localcommand 25 | - include: parameter-proxycommand 26 | - include: parameter-proxyjump 27 | - include: parameter-knownhostscommand 28 | - include: parameter-with-boolean-values 29 | - include: parameter-with-boolean-values-plus-ask 30 | - include: parameter-generic 31 | 32 | tokens: 33 | - match: '%%' 34 | scope: constant.character.escape.ssh_config 35 | - match: '{{tokens_standard}}' 36 | scope: constant.other.placeholder.ssh_config 37 | 38 | pop-before-match-parameter: 39 | - include: pop-before-nl 40 | - match: '(?=\s*{{match_parameters}})' 41 | pop: 1 42 | 43 | pop-before-next-host: 44 | - match: '(?=^\s*(?xi: Host | Match )\b)' 45 | pop: 1 46 | 47 | naked-parameters: 48 | - match: (?=\S) 49 | push: 50 | - meta_scope: meta.block.naked.ssh_config 51 | - include: pop-before-next-host 52 | - include: parameters 53 | 54 | host-pattern: 55 | - meta_content_scope: entity.name.label.host-alias.ssh_config 56 | - include: punctuation-dot-sequence 57 | - include: wildcards 58 | - match: (?=\s|,) 59 | pop: 1 60 | 61 | host-patterns: 62 | # https://man7.org/linux/man-pages/man5/ssh_config.5.html#PATTERNS 63 | # https://man.openbsd.org/ssh_config.5#PATTERNS 64 | - include: operator-exclamation 65 | - include: punctuation-comma-sequence 66 | - match: (?=\S) 67 | push: host-pattern 68 | 69 | environment-variables: 70 | # https://man7.org/linux/man-pages/man5/ssh_config.5.html#ENVIRONMENT_VARIABLES 71 | - include: scope:source.shell#parameter-expansions 72 | 73 | ###[ HOST ]#################################################################### 74 | 75 | host-block: 76 | - match: ^\s*((?i:Host))\b 77 | captures: 78 | 1: keyword.declaration.host-alias.ssh_config 79 | set: host-aliases 80 | 81 | host-aliases: 82 | - meta_scope: meta.block.host.ssh_config 83 | - match: (?=\n) 84 | set: host-body 85 | - include: host-patterns 86 | 87 | host-body: 88 | - meta_scope: meta.block.host.ssh_config 89 | - include: pop-before-next-host 90 | - include: parameters 91 | 92 | ###[ MATCH ]################################################################### 93 | 94 | match: 95 | - match: ^\s*((?i:Match))\b 96 | captures: 97 | 1: keyword.control.conditional.ssh_config 98 | set: match-conditions 99 | 100 | match-conditions: 101 | - meta_scope: meta.block.match.ssh_config 102 | - meta_content_scope: meta.statement.conditional.ssh_config 103 | 104 | - match: \n 105 | set: match-body 106 | 107 | - include: operator-exclamation 108 | # Match predicates with no arguments 109 | - include: match-all 110 | - match: '\b(?xi: canonical | final )\b' 111 | scope: keyword.other.ssh_config 112 | 113 | # Match predicates with shell 114 | # quoted shell 115 | - match: '\b((?xi: exec ))\b\s*(\")' 116 | captures: 117 | 1: keyword.other.ssh_config 118 | 2: string.quoted.double.ssh_config 119 | punctuation.definition.string.begin.ssh_config 120 | escape: (? 2 | 9 | host 10 | source.ssh_config 11 | Create new Host entry 12 | 13 | -------------------------------------------------------------------------------- /Snippets/match.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | match 8 | source.ssh_config 9 | Create new Match entry 10 | 11 | -------------------------------------------------------------------------------- /Support/Authorized Keys.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "text.authorized_keys - comment - string", 3 | "completions": [ 4 | { 5 | "trigger": "agent-forwarding", 6 | "contents": "agent-forwarding", 7 | "kind": [ 8 | "keyword", 9 | "o", 10 | "Options" 11 | ], 12 | "details": "Reenable restricted agent forwarding" 13 | }, 14 | { 15 | "trigger": "cert-authority", 16 | "contents": "cert-authority", 17 | "kind": [ 18 | "keyword", 19 | "o", 20 | "Options" 21 | ], 22 | "details": "Mark key as a CA" 23 | }, 24 | { 25 | "trigger": "command", 26 | "contents": "command", 27 | "kind": [ 28 | "keyword", 29 | "o", 30 | "Options" 31 | ], 32 | "details": "Run command when key is used" 33 | }, 34 | { 35 | "trigger": "command", 36 | "contents": "command=\"${0}\"", 37 | "kind": "snippet", 38 | "details": "Run command when key is used" 39 | }, 40 | { 41 | "trigger": "environment", 42 | "contents": "environment", 43 | "kind": [ 44 | "keyword", 45 | "o", 46 | "Options" 47 | ], 48 | "details": "Set one environment var" 49 | }, 50 | { 51 | "trigger": "environment", 52 | "contents": "environment=\"${1:NAME}=${2:value}\"", 53 | "kind": "snippet", 54 | "details": "Set one environment var" 55 | }, 56 | { 57 | "trigger": "expiry-time", 58 | "contents": "expiry-time", 59 | "kind": [ 60 | "keyword", 61 | "o", 62 | "Options" 63 | ], 64 | "details": "Give this key an expiration" 65 | }, 66 | { 67 | "trigger": "expiry-time", 68 | "contents": "expiry-time=\"${0:YYYYMMDD}\"", 69 | "kind": "snippet", 70 | "details": "Give this key an expiration" 71 | }, 72 | { 73 | "trigger": "from", 74 | "contents": "from", 75 | "kind": [ 76 | "keyword", 77 | "o", 78 | "Options" 79 | ], 80 | "details": "Allowlist remote hosts" 81 | }, 82 | { 83 | "trigger": "from", 84 | "contents": "from=\"${0:hosts}\"", 85 | "kind": "snippet", 86 | "details": "Allowlist remote hosts" 87 | }, 88 | { 89 | "trigger": "no-agent-forwarding", 90 | "contents": "no-agent-forwarding", 91 | "kind": [ 92 | "keyword", 93 | "o", 94 | "Options" 95 | ], 96 | "details": "Disable agent forwarding" 97 | }, 98 | { 99 | "trigger": "no-port-forwarding", 100 | "contents": "no-port-forwarding", 101 | "kind": [ 102 | "keyword", 103 | "o", 104 | "Options" 105 | ], 106 | "details": "Disable post forwarding" 107 | }, 108 | { 109 | "trigger": "no-pty", 110 | "contents": "no-pty", 111 | "kind": [ 112 | "keyword", 113 | "o", 114 | "Options" 115 | ], 116 | "details": "Disable tty allocation" 117 | }, 118 | { 119 | "trigger": "no-user-rc", 120 | "contents": "no-user-rc", 121 | "kind": [ 122 | "keyword", 123 | "o", 124 | "Options" 125 | ], 126 | "details": "Disable ~/.ssh/rc execution" 127 | }, 128 | { 129 | "trigger": "no-X11-forwarding", 130 | "contents": "no-X11-forwarding", 131 | "kind": [ 132 | "keyword", 133 | "o", 134 | "Options" 135 | ], 136 | "details": "Disable X11 forwarding" 137 | }, 138 | { 139 | "trigger": "permitlisten", 140 | "contents": "permitlisten", 141 | "kind": [ 142 | "keyword", 143 | "o", 144 | "Options" 145 | ], 146 | "details": "Allowlist remote (-R) port forwarding" 147 | }, 148 | { 149 | "trigger": "permitlisten", 150 | "contents": "permitlisten=\"${1:[host:]port}\"", 151 | "kind": "snippet", 152 | "details": "Allowlist remote (-R) port forwarding" 153 | }, 154 | { 155 | "trigger": "permitopen", 156 | "contents": "permitopen", 157 | "kind": [ 158 | "keyword", 159 | "o", 160 | "Options" 161 | ], 162 | "details": "Allowlist local (-L) port forwarding" 163 | }, 164 | { 165 | "trigger": "permitopen", 166 | "contents": "permitopen=\"${1:host}:${2:port}\"", 167 | "kind": "snippet", 168 | "details": "Allowlist local (-L) port forwarding" 169 | }, 170 | { 171 | "trigger": "port-forwarding", 172 | "contents": "port-forwarding", 173 | "kind": [ 174 | "keyword", 175 | "o", 176 | "Options" 177 | ], 178 | "details": "Reenable restricted port forwarding" 179 | }, 180 | { 181 | "trigger": "principals", 182 | "contents": "principals", 183 | "kind": [ 184 | "keyword", 185 | "o", 186 | "Options" 187 | ], 188 | "details": "Allowlist CA principals" 189 | }, 190 | { 191 | "trigger": "principals", 192 | "contents": "principals=\"${0:principals}\"", 193 | "kind": "snippet", 194 | "details": "Allowlist CA principals" 195 | }, 196 | { 197 | "trigger": "pty", 198 | "contents": "pty", 199 | "kind": [ 200 | "keyword", 201 | "o", 202 | "Options" 203 | ], 204 | "details": "Reenable restricted tty allocation" 205 | }, 206 | { 207 | "trigger": "no-touch-required", 208 | "contents": "no-touch-required", 209 | "kind": [ 210 | "keyword", 211 | "o", 212 | "Options" 213 | ], 214 | "details": "Skip security key touch" 215 | }, 216 | { 217 | "trigger": "restrict", 218 | "contents": "restrict", 219 | "kind": [ 220 | "keyword", 221 | "o", 222 | "Options" 223 | ], 224 | "details": "Enable all restrictions" 225 | }, 226 | { 227 | "trigger": "tunnel", 228 | "contents": "tunnel", 229 | "kind": [ 230 | "keyword", 231 | "o", 232 | "Options" 233 | ], 234 | "details": "Force specific tun device" 235 | }, 236 | { 237 | "trigger": "tunnel", 238 | "contents": "tunnel=\"${0:N}\"", 239 | "kind": "snippet", 240 | "details": "Force specific tun device" 241 | }, 242 | { 243 | "trigger": "user-rc", 244 | "contents": "user-rc", 245 | "kind": [ 246 | "keyword", 247 | "o", 248 | "Options" 249 | ], 250 | "details": "Reenable restricted ~/.ssh/rc execution" 251 | }, 252 | { 253 | "trigger": "X11-forwarding", 254 | "contents": "X11-forwarding", 255 | "kind": [ 256 | "keyword", 257 | "o", 258 | "Options" 259 | ], 260 | "details": "Reenable restricted X11 forwarding" 261 | } 262 | ] 263 | } -------------------------------------------------------------------------------- /Support/Authorized Keys.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "word_separators": "\\()\"':,;<>~!@#$%^&|=[]{}`~", 3 | "auto_complete_selector": "text.authorized_keys - comment - string", 4 | } 5 | -------------------------------------------------------------------------------- /Support/Config Values.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "(source.ssh_config | source.sshd_config) & meta.mapping.value - comment - source source", 3 | "completions": [ 4 | { 5 | "trigger": "yes", 6 | "contents": "yes", 7 | "kind": ["variable", "c", "Constant"], 8 | "details": "Boolean", 9 | }, 10 | { 11 | "trigger": "no", 12 | "contents": "no", 13 | "kind": ["variable", "c", "Constant"], 14 | "details": "Boolean", 15 | }, 16 | { 17 | "trigger": "ask", 18 | "contents": "ask", 19 | "kind": ["variable", "c", "Constant"], 20 | }, 21 | { 22 | "trigger": "confirm", 23 | "contents": "confirm", 24 | "kind": ["variable", "c", "Constant"], 25 | }, 26 | { 27 | "trigger": "any", 28 | "contents": "any", 29 | "kind": ["variable", "c", "Constant"], 30 | "details": "Set", 31 | }, 32 | { 33 | "trigger": "none", 34 | "contents": "none", 35 | "kind": ["variable", "c", "Constant"], 36 | "details": "Set", 37 | }, 38 | { 39 | "trigger": "inet", 40 | "contents": "inet", 41 | "annotation": "IPv4", 42 | "kind": ["variable", "c", "Constant"], 43 | "details": "only IPv4", 44 | }, 45 | { 46 | "trigger": "inet6", 47 | "contents": "inet6", 48 | "annotation": "IPv6", 49 | "kind": ["variable", "c", "Constant"], 50 | "details": "only IPv6", 51 | }, 52 | { 53 | "trigger": "gssapi-with-mic\tauth", 54 | "contents": "gssapi-with-mic", 55 | "annotation": "auth", 56 | "kind": ["variable", "a", "Auth type"], 57 | "details": "GSSAPI authentication", 58 | }, 59 | { 60 | "trigger": "hostbased\tauth", 61 | "contents": "hostbased", 62 | "annotation": "auth", 63 | "kind": ["variable", "a", "Auth type"], 64 | "details": "Host-based authentication", 65 | }, 66 | { 67 | "trigger": "publickey\tauth", 68 | "contents": "publickey", 69 | "annotation": "auth", 70 | "kind": ["variable", "a", "Auth type"], 71 | "details": "Public key authentication", 72 | }, 73 | { 74 | "trigger": "keyboard-interactive\tauth", 75 | "contents": "keyboard-interactive", 76 | "annotation": "auth", 77 | "kind": ["variable", "a", "Auth type"], 78 | "details": "PAM or BSDAuth authentication", 79 | }, 80 | { 81 | "trigger": "password\tauth", 82 | "contents": "password", 83 | "annotation": "auth", 84 | "kind": ["variable", "a", "Auth type"], 85 | "details": "/etc/passwd authentication", 86 | }, 87 | ] 88 | } 89 | -------------------------------------------------------------------------------- /Support/Indentation Rules SSH Config.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Indentation Rules 6 | scope 7 | source.ssh_config 8 | settings 9 | 10 | decreaseIndentPattern 11 | ^\s*(?i:Host|Match)(\s|$) 12 | increaseIndentPattern 13 | ^\s*(?i:Host|Match)(\s|$) 14 | unIndentedLinePattern 15 | ^\s*([#;].*)?$ 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/Indentation Rules SSHD Config.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Indentation Rules 6 | scope 7 | source.sshd_config 8 | settings 9 | 10 | decreaseIndentPattern 11 | ^\s*(?i:Match)(\s|$) 12 | increaseIndentPattern 13 | ^\s*(?i:Match)(\s|$) 14 | unIndentedLinePattern 15 | ^\s*([#;].*)?$ 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/Known Hosts.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "word_separators": "\\()\"':,;<>~!@#$%^&|[]{}`~", 3 | } 4 | -------------------------------------------------------------------------------- /Support/SSH Config - Match Conditions.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "source.ssh_config meta.block.match meta.statement.conditional", 3 | "completions": [ 4 | { 5 | "trigger": "Canonical", 6 | "contents": "Canonical", 7 | "kind": [ 8 | "keyword", 9 | "c", 10 | "Condition" 11 | ], 12 | "details": "Only match after hostname canonicalization" 13 | }, 14 | { 15 | "trigger": "Exec", 16 | "contents": "Exec", 17 | "kind": [ 18 | "keyword", 19 | "c", 20 | "Condition" 21 | ], 22 | "details": "Match if return code is 0" 23 | }, 24 | { 25 | "trigger": "exec", 26 | "contents": "Exec \"${1:hostname -d | ! grep -q -E '^example\\.com'}\"", 27 | "kind": "snippet", 28 | "details": "Match if return code is 0" 29 | }, 30 | { 31 | "trigger": "Host", 32 | "contents": "Host", 33 | "kind": [ 34 | "keyword", 35 | "c", 36 | "Condition" 37 | ], 38 | "details": "Match if Host in patterns" 39 | }, 40 | { 41 | "trigger": "host", 42 | "contents": "Host ${1:*.example.com,*.example.org}", 43 | "kind": "snippet", 44 | "details": "Match if Host in patterns" 45 | }, 46 | { 47 | "trigger": "OriginalHost", 48 | "contents": "OriginalHost", 49 | "kind": [ 50 | "keyword", 51 | "c", 52 | "Condition" 53 | ], 54 | "details": "Match if CLI-entered host in patterns" 55 | }, 56 | { 57 | "trigger": "originalhost", 58 | "contents": "OriginalHost ${1:foo,*.jump}", 59 | "kind": "snippet", 60 | "details": "Match if CLI-entered host in patterns" 61 | }, 62 | { 63 | "trigger": "User", 64 | "contents": "User", 65 | "kind": [ 66 | "keyword", 67 | "c", 68 | "Condition" 69 | ], 70 | "details": "Match if target User in patterns" 71 | }, 72 | { 73 | "trigger": "user", 74 | "contents": "User ${1:user1,user2}", 75 | "kind": "snippet", 76 | "details": "Match if target User in patterns" 77 | }, 78 | { 79 | "trigger": "LocalUser", 80 | "contents": "LocalUser", 81 | "kind": [ 82 | "keyword", 83 | "c", 84 | "Condition" 85 | ], 86 | "details": "Match if your current user in patterns" 87 | }, 88 | { 89 | "trigger": "localuser", 90 | "contents": "LocalUser ${1:user1,user2}", 91 | "kind": "snippet", 92 | "details": "Match if your current user in patterns" 93 | }, 94 | { 95 | "trigger": "LocalNetwork", 96 | "contents": "LocalNetwork", 97 | "kind": [ 98 | "keyword", 99 | "c", 100 | "Condition" 101 | ], 102 | "details": "Match if current network devices in CIDRs" 103 | }, 104 | { 105 | "trigger": "localnetwork", 106 | "contents": "LocalNetwork ${1:10.11.12.0/24}", 107 | "kind": "snippet", 108 | "details": "Match if current network devices in CIDRs" 109 | }, 110 | { 111 | "trigger": "Command", 112 | "contents": "Command", 113 | "kind": [ 114 | "keyword", 115 | "c", 116 | "Condition" 117 | ], 118 | "details": "Match RemoteCommand to be run" 119 | }, 120 | { 121 | "trigger": "command", 122 | "contents": "Command ${1:sftp}", 123 | "kind": "snippet", 124 | "details": "Match RemoteCommand to be run" 125 | }, 126 | { 127 | "trigger": "SessionType", 128 | "contents": "SessionType", 129 | "kind": [ 130 | "keyword", 131 | "c", 132 | "Condition" 133 | ], 134 | "details": "Match SessionType for host" 135 | }, 136 | { 137 | "trigger": "sessiontype", 138 | "contents": "SessionType ${0:{ shell | exec | subsystem | none \\}}", 139 | "kind": "snippet", 140 | "details": "Match SessionType for host" 141 | }, 142 | { 143 | "trigger": "Tagged", 144 | "contents": "Tagged", 145 | "kind": [ 146 | "keyword", 147 | "c", 148 | "Condition" 149 | ], 150 | "details": "Match if Tag in patterns" 151 | }, 152 | { 153 | "trigger": "tagged", 154 | "contents": "Tagged ${1:foo,*.jump}", 155 | "kind": "snippet", 156 | "details": "Match if Tag in patterns" 157 | }, 158 | { 159 | "trigger": "Version", 160 | "contents": "Version", 161 | "kind": [ 162 | "keyword", 163 | "c", 164 | "Condition" 165 | ], 166 | "details": "Match version string of SSH client" 167 | }, 168 | { 169 | "trigger": "version", 170 | "contents": "Version ${1:OpenSSH_10.0}", 171 | "kind": "snippet", 172 | "details": "Match version string of SSH client" 173 | }, 174 | { 175 | "trigger": "All", 176 | "contents": "All", 177 | "kind": [ 178 | "keyword", 179 | "c", 180 | "Condition" 181 | ], 182 | "details": "Always matches" 183 | }, 184 | { 185 | "trigger": "Final", 186 | "contents": "Final", 187 | "kind": [ 188 | "keyword", 189 | "c", 190 | "Condition" 191 | ], 192 | "details": "Reparse config and match only on this pass" 193 | } 194 | ] 195 | } -------------------------------------------------------------------------------- /Support/SSHD Config - Match Conditions.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "source.sshd_config meta.block.match meta.statement.conditional", 3 | "completions": [ 4 | { 5 | "trigger": "User", 6 | "contents": "User", 7 | "kind": [ 8 | "keyword", 9 | "c", 10 | "Condition" 11 | ], 12 | "details": "Match if user matches patterns" 13 | }, 14 | { 15 | "trigger": "user", 16 | "contents": "User ${1:user1,user2}", 17 | "kind": "snippet", 18 | "details": "Match if user matches patterns" 19 | }, 20 | { 21 | "trigger": "Group", 22 | "contents": "Group", 23 | "kind": [ 24 | "keyword", 25 | "c", 26 | "Condition" 27 | ], 28 | "details": "Match if user's groups match patterns" 29 | }, 30 | { 31 | "trigger": "group", 32 | "contents": "Group ${1:group1,group2}", 33 | "kind": "snippet", 34 | "details": "Match if user's groups match patterns" 35 | }, 36 | { 37 | "trigger": "Host", 38 | "contents": "Host", 39 | "kind": [ 40 | "keyword", 41 | "c", 42 | "Condition" 43 | ], 44 | "details": "Match if hostname in patterns" 45 | }, 46 | { 47 | "trigger": "host", 48 | "contents": "Host ${1:*.example.com,*.example.org}", 49 | "kind": "snippet", 50 | "details": "Match if hostname in patterns" 51 | }, 52 | { 53 | "trigger": "LocalAddress", 54 | "contents": "LocalAddress", 55 | "kind": [ 56 | "keyword", 57 | "c", 58 | "Condition" 59 | ], 60 | "details": "Match if listening NIC matches patterns" 61 | }, 62 | { 63 | "trigger": "localaddress", 64 | "contents": "LocalAddress ${1:192.0.2.0,2001:db8::}", 65 | "kind": "snippet", 66 | "details": "Match if listening NIC matches patterns" 67 | }, 68 | { 69 | "trigger": "LocalPort", 70 | "contents": "LocalPort", 71 | "kind": [ 72 | "keyword", 73 | "c", 74 | "Condition" 75 | ], 76 | "details": "Match if listening port matches patterns" 77 | }, 78 | { 79 | "trigger": "localport", 80 | "contents": "LocalPort ${1:22,2222}", 81 | "kind": "snippet", 82 | "details": "Match if listening port matches patterns" 83 | }, 84 | { 85 | "trigger": "RDomain", 86 | "contents": "RDomain", 87 | "kind": [ 88 | "keyword", 89 | "c", 90 | "Condition" 91 | ], 92 | "details": "Match if in the routing domain" 93 | }, 94 | { 95 | "trigger": "rdomain", 96 | "contents": "RDomain ${0:4}", 97 | "kind": "snippet", 98 | "details": "Match if in the routing domain" 99 | }, 100 | { 101 | "trigger": "Address", 102 | "contents": "Address", 103 | "kind": [ 104 | "keyword", 105 | "c", 106 | "Condition" 107 | ], 108 | "details": "Match if connecting IP in CIDRs" 109 | }, 110 | { 111 | "trigger": "address", 112 | "contents": "Address ${1:192.0.2.0/24,2001:db8::/32}", 113 | "kind": "snippet", 114 | "details": "Match if connecting IP in CIDRs" 115 | } 116 | ] 117 | } -------------------------------------------------------------------------------- /Support/Symbol List Key Annotation.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Symbol List 6 | scope 7 | 8 | text.authorized_keys meta.annotation.identifier, 9 | text.known_hosts meta.annotation.identifier 10 | 11 | settings 12 | 13 | showInSymbolList 14 | 1 15 | symbolTransformation 16 | 17 | s/(.+)/Annotation: $1/g; 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Support/Symbol List SSH Aliases.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Symbol List: SSH Host Aliases 6 | scope 7 | source.ssh_config entity.name.label.host-alias 8 | settings 9 | 10 | showInSymbolList 11 | 1 12 | symbolTransformation 13 | 14 | s/(.+)/Alias: $1/g; 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/Symbol List SSH Hosts.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Symbol List: SSH Hostnames 6 | scope 7 | source.ssh_config meta.string.host 8 | settings 9 | 10 | showInSymbolList 11 | 1 12 | symbolTransformation 13 | 14 | s/(.+)/Host: $1/g; 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/Symbol List SSHD Keyword.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Symbol List: SSHD Keywords 6 | scope 7 | 8 | source.sshd_config meta.statement.conditional, 9 | source.sshd_config keyword - keyword.operator - meta.statement, 10 | source.sshd_config meta.keyword 11 | 12 | settings 13 | 14 | showInSymbolList 15 | 1 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/Symbol List known_hosts Hostnames.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Symbol List: SSH Hostnames 6 | scope 7 | text.known_hosts meta.string.host 8 | settings 9 | 10 | showInSymbolList 11 | 1 12 | symbolTransformation 13 | 14 | s/(.+)/Host: $1/g; 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/Symbol List known_hosts IPs.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | name 5 | Symbol List: IP Addresses 6 | scope 7 | text.known_hosts constant.numeric.ip-address 8 | settings 9 | 10 | showInSymbolList 11 | 1 12 | symbolTransformation 13 | 14 | s/(.+)/IP: $1/g; 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Support/ciphers.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "(source.ssh_config | source.sshd_config) & meta.mapping.value - source source", 3 | "completions": [ 4 | { 5 | "trigger": "AEAD_AES_128_GCM\tcipher", 6 | "contents": "AEAD_AES_128_GCM", 7 | "annotation": "cipher", 8 | "kind": [ 9 | "function", 10 | "c", 11 | "Cipher" 12 | ] 13 | }, 14 | { 15 | "trigger": "AEAD_AES_256_GCM\tcipher", 16 | "contents": "AEAD_AES_256_GCM", 17 | "annotation": "cipher", 18 | "kind": [ 19 | "function", 20 | "c", 21 | "Cipher" 22 | ] 23 | }, 24 | { 25 | "trigger": "aes128-ctr\tcipher", 26 | "contents": "aes128-ctr", 27 | "annotation": "cipher", 28 | "kind": [ 29 | "function", 30 | "c", 31 | "Cipher" 32 | ] 33 | }, 34 | { 35 | "trigger": "aes128-gcm@openssh.com\tcipher", 36 | "contents": "aes128-gcm@openssh.com", 37 | "annotation": "cipher", 38 | "kind": [ 39 | "function", 40 | "c", 41 | "Cipher" 42 | ] 43 | }, 44 | { 45 | "trigger": "aes128-gcm\tcipher", 46 | "contents": "aes128-gcm", 47 | "annotation": "cipher", 48 | "kind": [ 49 | "function", 50 | "c", 51 | "Cipher" 52 | ] 53 | }, 54 | { 55 | "trigger": "aes192-gcm@openssh.com\tcipher", 56 | "contents": "aes192-gcm@openssh.com", 57 | "annotation": "cipher", 58 | "kind": [ 59 | "function", 60 | "c", 61 | "Cipher" 62 | ] 63 | }, 64 | { 65 | "trigger": "aes192-ctr\tcipher", 66 | "contents": "aes192-ctr", 67 | "annotation": "cipher", 68 | "kind": [ 69 | "function", 70 | "c", 71 | "Cipher" 72 | ] 73 | }, 74 | { 75 | "trigger": "aes256-ctr\tcipher", 76 | "contents": "aes256-ctr", 77 | "annotation": "cipher", 78 | "kind": [ 79 | "function", 80 | "c", 81 | "Cipher" 82 | ] 83 | }, 84 | { 85 | "trigger": "aes256-gcm@openssh.com\tcipher", 86 | "contents": "aes256-gcm@openssh.com", 87 | "annotation": "cipher", 88 | "kind": [ 89 | "function", 90 | "c", 91 | "Cipher" 92 | ] 93 | }, 94 | { 95 | "trigger": "aes256-gcm\tcipher", 96 | "contents": "aes256-gcm", 97 | "annotation": "cipher", 98 | "kind": [ 99 | "function", 100 | "c", 101 | "Cipher" 102 | ] 103 | }, 104 | { 105 | "trigger": "camellia128-ctr@openssh.org\tcipher", 106 | "contents": "camellia128-ctr@openssh.org", 107 | "annotation": "cipher", 108 | "kind": [ 109 | "function", 110 | "c", 111 | "Cipher" 112 | ] 113 | }, 114 | { 115 | "trigger": "camellia128-ctr\tcipher", 116 | "contents": "camellia128-ctr", 117 | "annotation": "cipher", 118 | "kind": [ 119 | "function", 120 | "c", 121 | "Cipher" 122 | ] 123 | }, 124 | { 125 | "trigger": "camellia192-ctr@openssh.org\tcipher", 126 | "contents": "camellia192-ctr@openssh.org", 127 | "annotation": "cipher", 128 | "kind": [ 129 | "function", 130 | "c", 131 | "Cipher" 132 | ] 133 | }, 134 | { 135 | "trigger": "camellia192-ctr\tcipher", 136 | "contents": "camellia192-ctr", 137 | "annotation": "cipher", 138 | "kind": [ 139 | "function", 140 | "c", 141 | "Cipher" 142 | ] 143 | }, 144 | { 145 | "trigger": "camellia256-ctr@openssh.org\tcipher", 146 | "contents": "camellia256-ctr@openssh.org", 147 | "annotation": "cipher", 148 | "kind": [ 149 | "function", 150 | "c", 151 | "Cipher" 152 | ] 153 | }, 154 | { 155 | "trigger": "camellia256-ctr\tcipher", 156 | "contents": "camellia256-ctr", 157 | "annotation": "cipher", 158 | "kind": [ 159 | "function", 160 | "c", 161 | "Cipher" 162 | ] 163 | }, 164 | { 165 | "trigger": "chacha20-poly1305@openssh.com\tcipher", 166 | "contents": "chacha20-poly1305@openssh.com", 167 | "annotation": "cipher", 168 | "kind": [ 169 | "function", 170 | "c", 171 | "Cipher" 172 | ] 173 | }, 174 | { 175 | "trigger": "chacha20-poly1305\tcipher", 176 | "contents": "chacha20-poly1305", 177 | "annotation": "cipher", 178 | "kind": [ 179 | "function", 180 | "c", 181 | "Cipher" 182 | ] 183 | }, 184 | { 185 | "trigger": "crypticore128@ssh.com\tcipher", 186 | "contents": "crypticore128@ssh.com", 187 | "annotation": "cipher", 188 | "kind": [ 189 | "function", 190 | "c", 191 | "Cipher" 192 | ] 193 | }, 194 | { 195 | "trigger": "twofish128-ctr\tcipher", 196 | "contents": "twofish128-ctr", 197 | "annotation": "cipher", 198 | "kind": [ 199 | "function", 200 | "c", 201 | "Cipher" 202 | ] 203 | }, 204 | { 205 | "trigger": "twofish128-gcm@libassh.org\tcipher", 206 | "contents": "twofish128-gcm@libassh.org", 207 | "annotation": "cipher", 208 | "kind": [ 209 | "function", 210 | "c", 211 | "Cipher" 212 | ] 213 | }, 214 | { 215 | "trigger": "twofish192-ctr\tcipher", 216 | "contents": "twofish192-ctr", 217 | "annotation": "cipher", 218 | "kind": [ 219 | "function", 220 | "c", 221 | "Cipher" 222 | ] 223 | }, 224 | { 225 | "trigger": "twofish256-ctr\tcipher", 226 | "contents": "twofish256-ctr", 227 | "annotation": "cipher", 228 | "kind": [ 229 | "function", 230 | "c", 231 | "Cipher" 232 | ] 233 | }, 234 | { 235 | "trigger": "twofish256-gcm@libassh.org\tcipher", 236 | "contents": "twofish256-gcm@libassh.org", 237 | "annotation": "cipher", 238 | "kind": [ 239 | "function", 240 | "c", 241 | "Cipher" 242 | ] 243 | }, 244 | { 245 | "trigger": "twofish-ctr\tcipher", 246 | "contents": "twofish-ctr", 247 | "annotation": "cipher", 248 | "kind": [ 249 | "function", 250 | "c", 251 | "Cipher" 252 | ] 253 | }, 254 | { 255 | "trigger": "3des-cbc\tdeprecated cipher", 256 | "contents": "3des-cbc", 257 | "annotation": "deprecated cipher", 258 | "kind": [ 259 | "function", 260 | "c", 261 | "Cipher" 262 | ], 263 | "details": "Deprecated" 264 | }, 265 | { 266 | "trigger": "3des-cfb\tdeprecated cipher", 267 | "contents": "3des-cfb", 268 | "annotation": "deprecated cipher", 269 | "kind": [ 270 | "function", 271 | "c", 272 | "Cipher" 273 | ], 274 | "details": "Deprecated" 275 | }, 276 | { 277 | "trigger": "3des-ctr\tdeprecated cipher", 278 | "contents": "3des-ctr", 279 | "annotation": "deprecated cipher", 280 | "kind": [ 281 | "function", 282 | "c", 283 | "Cipher" 284 | ], 285 | "details": "Deprecated" 286 | }, 287 | { 288 | "trigger": "3des-ecb\tdeprecated cipher", 289 | "contents": "3des-ecb", 290 | "annotation": "deprecated cipher", 291 | "kind": [ 292 | "function", 293 | "c", 294 | "Cipher" 295 | ], 296 | "details": "Deprecated" 297 | }, 298 | { 299 | "trigger": "3des-ofb\tdeprecated cipher", 300 | "contents": "3des-ofb", 301 | "annotation": "deprecated cipher", 302 | "kind": [ 303 | "function", 304 | "c", 305 | "Cipher" 306 | ], 307 | "details": "Deprecated" 308 | }, 309 | { 310 | "trigger": "3des\tdeprecated cipher", 311 | "contents": "3des", 312 | "annotation": "deprecated cipher", 313 | "kind": [ 314 | "function", 315 | "c", 316 | "Cipher" 317 | ], 318 | "details": "Deprecated" 319 | }, 320 | { 321 | "trigger": "aes128-cbc\tdeprecated cipher", 322 | "contents": "aes128-cbc", 323 | "annotation": "deprecated cipher", 324 | "kind": [ 325 | "function", 326 | "c", 327 | "Cipher" 328 | ], 329 | "details": "Deprecated" 330 | }, 331 | { 332 | "trigger": "aes192-cbc\tdeprecated cipher", 333 | "contents": "aes192-cbc", 334 | "annotation": "deprecated cipher", 335 | "kind": [ 336 | "function", 337 | "c", 338 | "Cipher" 339 | ], 340 | "details": "Deprecated" 341 | }, 342 | { 343 | "trigger": "aes256-cbc\tdeprecated cipher", 344 | "contents": "aes256-cbc", 345 | "annotation": "deprecated cipher", 346 | "kind": [ 347 | "function", 348 | "c", 349 | "Cipher" 350 | ], 351 | "details": "Deprecated" 352 | }, 353 | { 354 | "trigger": "aes128-ocb@libassh.org\tdeprecated cipher", 355 | "contents": "aes128-ocb@libassh.org", 356 | "annotation": "deprecated cipher", 357 | "kind": [ 358 | "function", 359 | "c", 360 | "Cipher" 361 | ], 362 | "details": "Deprecated" 363 | }, 364 | { 365 | "trigger": "arcfour128\tdeprecated cipher", 366 | "contents": "arcfour128", 367 | "annotation": "deprecated cipher", 368 | "kind": [ 369 | "function", 370 | "c", 371 | "Cipher" 372 | ], 373 | "details": "Deprecated" 374 | }, 375 | { 376 | "trigger": "arcfour256\tdeprecated cipher", 377 | "contents": "arcfour256", 378 | "annotation": "deprecated cipher", 379 | "kind": [ 380 | "function", 381 | "c", 382 | "Cipher" 383 | ], 384 | "details": "Deprecated" 385 | }, 386 | { 387 | "trigger": "arcfour\tdeprecated cipher", 388 | "contents": "arcfour", 389 | "annotation": "deprecated cipher", 390 | "kind": [ 391 | "function", 392 | "c", 393 | "Cipher" 394 | ], 395 | "details": "Deprecated" 396 | }, 397 | { 398 | "trigger": "blowfish-cbc\tdeprecated cipher", 399 | "contents": "blowfish-cbc", 400 | "annotation": "deprecated cipher", 401 | "kind": [ 402 | "function", 403 | "c", 404 | "Cipher" 405 | ], 406 | "details": "Deprecated" 407 | }, 408 | { 409 | "trigger": "blowfish-cfb\tdeprecated cipher", 410 | "contents": "blowfish-cfb", 411 | "annotation": "deprecated cipher", 412 | "kind": [ 413 | "function", 414 | "c", 415 | "Cipher" 416 | ], 417 | "details": "Deprecated" 418 | }, 419 | { 420 | "trigger": "blowfish-ctr\tdeprecated cipher", 421 | "contents": "blowfish-ctr", 422 | "annotation": "deprecated cipher", 423 | "kind": [ 424 | "function", 425 | "c", 426 | "Cipher" 427 | ], 428 | "details": "Deprecated" 429 | }, 430 | { 431 | "trigger": "blowfish-ecb\tdeprecated cipher", 432 | "contents": "blowfish-ecb", 433 | "annotation": "deprecated cipher", 434 | "kind": [ 435 | "function", 436 | "c", 437 | "Cipher" 438 | ], 439 | "details": "Deprecated" 440 | }, 441 | { 442 | "trigger": "blowfish\tdeprecated cipher", 443 | "contents": "blowfish", 444 | "annotation": "deprecated cipher", 445 | "kind": [ 446 | "function", 447 | "c", 448 | "Cipher" 449 | ], 450 | "details": "Deprecated" 451 | }, 452 | { 453 | "trigger": "camellia128-cbc@openssh.org\tdeprecated cipher", 454 | "contents": "camellia128-cbc@openssh.org", 455 | "annotation": "deprecated cipher", 456 | "kind": [ 457 | "function", 458 | "c", 459 | "Cipher" 460 | ], 461 | "details": "Deprecated" 462 | }, 463 | { 464 | "trigger": "camellia128-cbc\tdeprecated cipher", 465 | "contents": "camellia128-cbc", 466 | "annotation": "deprecated cipher", 467 | "kind": [ 468 | "function", 469 | "c", 470 | "Cipher" 471 | ], 472 | "details": "Deprecated" 473 | }, 474 | { 475 | "trigger": "camellia192-cbc@openssh.org\tdeprecated cipher", 476 | "contents": "camellia192-cbc@openssh.org", 477 | "annotation": "deprecated cipher", 478 | "kind": [ 479 | "function", 480 | "c", 481 | "Cipher" 482 | ], 483 | "details": "Deprecated" 484 | }, 485 | { 486 | "trigger": "camellia192-cbc\tdeprecated cipher", 487 | "contents": "camellia192-cbc", 488 | "annotation": "deprecated cipher", 489 | "kind": [ 490 | "function", 491 | "c", 492 | "Cipher" 493 | ], 494 | "details": "Deprecated" 495 | }, 496 | { 497 | "trigger": "camellia256-cbc@openssh.org\tdeprecated cipher", 498 | "contents": "camellia256-cbc@openssh.org", 499 | "annotation": "deprecated cipher", 500 | "kind": [ 501 | "function", 502 | "c", 503 | "Cipher" 504 | ], 505 | "details": "Deprecated" 506 | }, 507 | { 508 | "trigger": "camellia256-cbc\tdeprecated cipher", 509 | "contents": "camellia256-cbc", 510 | "annotation": "deprecated cipher", 511 | "kind": [ 512 | "function", 513 | "c", 514 | "Cipher" 515 | ], 516 | "details": "Deprecated" 517 | }, 518 | { 519 | "trigger": "cast128-12-cbc\tdeprecated cipher", 520 | "contents": "cast128-12-cbc", 521 | "annotation": "deprecated cipher", 522 | "kind": [ 523 | "function", 524 | "c", 525 | "Cipher" 526 | ], 527 | "details": "Deprecated" 528 | }, 529 | { 530 | "trigger": "cast128-12-cfb\tdeprecated cipher", 531 | "contents": "cast128-12-cfb", 532 | "annotation": "deprecated cipher", 533 | "kind": [ 534 | "function", 535 | "c", 536 | "Cipher" 537 | ], 538 | "details": "Deprecated" 539 | }, 540 | { 541 | "trigger": "cast128-12-ctr\tdeprecated cipher", 542 | "contents": "cast128-12-ctr", 543 | "annotation": "deprecated cipher", 544 | "kind": [ 545 | "function", 546 | "c", 547 | "Cipher" 548 | ], 549 | "details": "Deprecated" 550 | }, 551 | { 552 | "trigger": "cast128-12-ecb\tdeprecated cipher", 553 | "contents": "cast128-12-ecb", 554 | "annotation": "deprecated cipher", 555 | "kind": [ 556 | "function", 557 | "c", 558 | "Cipher" 559 | ], 560 | "details": "Deprecated" 561 | }, 562 | { 563 | "trigger": "cast128-12-ofb\tdeprecated cipher", 564 | "contents": "cast128-12-ofb", 565 | "annotation": "deprecated cipher", 566 | "kind": [ 567 | "function", 568 | "c", 569 | "Cipher" 570 | ], 571 | "details": "Deprecated" 572 | }, 573 | { 574 | "trigger": "cast128-cbc\tdeprecated cipher", 575 | "contents": "cast128-cbc", 576 | "annotation": "deprecated cipher", 577 | "kind": [ 578 | "function", 579 | "c", 580 | "Cipher" 581 | ], 582 | "details": "Deprecated" 583 | }, 584 | { 585 | "trigger": "cast128-cfb\tdeprecated cipher", 586 | "contents": "cast128-cfb", 587 | "annotation": "deprecated cipher", 588 | "kind": [ 589 | "function", 590 | "c", 591 | "Cipher" 592 | ], 593 | "details": "Deprecated" 594 | }, 595 | { 596 | "trigger": "cast128-ctr\tdeprecated cipher", 597 | "contents": "cast128-ctr", 598 | "annotation": "deprecated cipher", 599 | "kind": [ 600 | "function", 601 | "c", 602 | "Cipher" 603 | ], 604 | "details": "Deprecated" 605 | }, 606 | { 607 | "trigger": "cast128-ecb\tdeprecated cipher", 608 | "contents": "cast128-ecb", 609 | "annotation": "deprecated cipher", 610 | "kind": [ 611 | "function", 612 | "c", 613 | "Cipher" 614 | ], 615 | "details": "Deprecated" 616 | }, 617 | { 618 | "trigger": "cast128-ofb\tdeprecated cipher", 619 | "contents": "cast128-ofb", 620 | "annotation": "deprecated cipher", 621 | "kind": [ 622 | "function", 623 | "c", 624 | "Cipher" 625 | ], 626 | "details": "Deprecated" 627 | }, 628 | { 629 | "trigger": "des-cbc-ssh1\tdeprecated cipher", 630 | "contents": "des-cbc-ssh1", 631 | "annotation": "deprecated cipher", 632 | "kind": [ 633 | "function", 634 | "c", 635 | "Cipher" 636 | ], 637 | "details": "Deprecated" 638 | }, 639 | { 640 | "trigger": "des-cbc@ssh.com\tdeprecated cipher", 641 | "contents": "des-cbc@ssh.com", 642 | "annotation": "deprecated cipher", 643 | "kind": [ 644 | "function", 645 | "c", 646 | "Cipher" 647 | ], 648 | "details": "Deprecated" 649 | }, 650 | { 651 | "trigger": "des-cbc\tdeprecated cipher", 652 | "contents": "des-cbc", 653 | "annotation": "deprecated cipher", 654 | "kind": [ 655 | "function", 656 | "c", 657 | "Cipher" 658 | ], 659 | "details": "Deprecated" 660 | }, 661 | { 662 | "trigger": "des-cfb\tdeprecated cipher", 663 | "contents": "des-cfb", 664 | "annotation": "deprecated cipher", 665 | "kind": [ 666 | "function", 667 | "c", 668 | "Cipher" 669 | ], 670 | "details": "Deprecated" 671 | }, 672 | { 673 | "trigger": "des-ecb\tdeprecated cipher", 674 | "contents": "des-ecb", 675 | "annotation": "deprecated cipher", 676 | "kind": [ 677 | "function", 678 | "c", 679 | "Cipher" 680 | ], 681 | "details": "Deprecated" 682 | }, 683 | { 684 | "trigger": "des-ofb\tdeprecated cipher", 685 | "contents": "des-ofb", 686 | "annotation": "deprecated cipher", 687 | "kind": [ 688 | "function", 689 | "c", 690 | "Cipher" 691 | ], 692 | "details": "Deprecated" 693 | }, 694 | { 695 | "trigger": "des\tdeprecated cipher", 696 | "contents": "des", 697 | "annotation": "deprecated cipher", 698 | "kind": [ 699 | "function", 700 | "c", 701 | "Cipher" 702 | ], 703 | "details": "Deprecated" 704 | }, 705 | { 706 | "trigger": "idea-cbc\tdeprecated cipher", 707 | "contents": "idea-cbc", 708 | "annotation": "deprecated cipher", 709 | "kind": [ 710 | "function", 711 | "c", 712 | "Cipher" 713 | ], 714 | "details": "Deprecated" 715 | }, 716 | { 717 | "trigger": "idea-cfb\tdeprecated cipher", 718 | "contents": "idea-cfb", 719 | "annotation": "deprecated cipher", 720 | "kind": [ 721 | "function", 722 | "c", 723 | "Cipher" 724 | ], 725 | "details": "Deprecated" 726 | }, 727 | { 728 | "trigger": "idea-ctr\tdeprecated cipher", 729 | "contents": "idea-ctr", 730 | "annotation": "deprecated cipher", 731 | "kind": [ 732 | "function", 733 | "c", 734 | "Cipher" 735 | ], 736 | "details": "Deprecated" 737 | }, 738 | { 739 | "trigger": "idea-ecb\tdeprecated cipher", 740 | "contents": "idea-ecb", 741 | "annotation": "deprecated cipher", 742 | "kind": [ 743 | "function", 744 | "c", 745 | "Cipher" 746 | ], 747 | "details": "Deprecated" 748 | }, 749 | { 750 | "trigger": "idea-ofb\tdeprecated cipher", 751 | "contents": "idea-ofb", 752 | "annotation": "deprecated cipher", 753 | "kind": [ 754 | "function", 755 | "c", 756 | "Cipher" 757 | ], 758 | "details": "Deprecated" 759 | }, 760 | { 761 | "trigger": "none\tdeprecated cipher", 762 | "contents": "none", 763 | "annotation": "deprecated cipher", 764 | "kind": [ 765 | "function", 766 | "c", 767 | "Cipher" 768 | ], 769 | "details": "Deprecated" 770 | }, 771 | { 772 | "trigger": "rijndael-cbc@lysator.liu.se\tdeprecated cipher", 773 | "contents": "rijndael-cbc@lysator.liu.se", 774 | "annotation": "deprecated cipher", 775 | "kind": [ 776 | "function", 777 | "c", 778 | "Cipher" 779 | ], 780 | "details": "Deprecated" 781 | }, 782 | { 783 | "trigger": "rijndael-cbc@ssh.com\tdeprecated cipher", 784 | "contents": "rijndael-cbc@ssh.com", 785 | "annotation": "deprecated cipher", 786 | "kind": [ 787 | "function", 788 | "c", 789 | "Cipher" 790 | ], 791 | "details": "Deprecated" 792 | }, 793 | { 794 | "trigger": "rijndael128-cbc\tdeprecated cipher", 795 | "contents": "rijndael128-cbc", 796 | "annotation": "deprecated cipher", 797 | "kind": [ 798 | "function", 799 | "c", 800 | "Cipher" 801 | ], 802 | "details": "Deprecated" 803 | }, 804 | { 805 | "trigger": "rijndael192-cbc\tdeprecated cipher", 806 | "contents": "rijndael192-cbc", 807 | "annotation": "deprecated cipher", 808 | "kind": [ 809 | "function", 810 | "c", 811 | "Cipher" 812 | ], 813 | "details": "Deprecated" 814 | }, 815 | { 816 | "trigger": "rijndael256-cbc\tdeprecated cipher", 817 | "contents": "rijndael256-cbc", 818 | "annotation": "deprecated cipher", 819 | "kind": [ 820 | "function", 821 | "c", 822 | "Cipher" 823 | ], 824 | "details": "Deprecated" 825 | }, 826 | { 827 | "trigger": "seed-cbc@ssh.com\tdeprecated cipher", 828 | "contents": "seed-cbc@ssh.com", 829 | "annotation": "deprecated cipher", 830 | "kind": [ 831 | "function", 832 | "c", 833 | "Cipher" 834 | ], 835 | "details": "Deprecated" 836 | }, 837 | { 838 | "trigger": "seed-ctr@ssh.com\tdeprecated cipher", 839 | "contents": "seed-ctr@ssh.com", 840 | "annotation": "deprecated cipher", 841 | "kind": [ 842 | "function", 843 | "c", 844 | "Cipher" 845 | ], 846 | "details": "Deprecated" 847 | }, 848 | { 849 | "trigger": "serpent128-cbc\tdeprecated cipher", 850 | "contents": "serpent128-cbc", 851 | "annotation": "deprecated cipher", 852 | "kind": [ 853 | "function", 854 | "c", 855 | "Cipher" 856 | ], 857 | "details": "Deprecated" 858 | }, 859 | { 860 | "trigger": "serpent128-ctr\tdeprecated cipher", 861 | "contents": "serpent128-ctr", 862 | "annotation": "deprecated cipher", 863 | "kind": [ 864 | "function", 865 | "c", 866 | "Cipher" 867 | ], 868 | "details": "Deprecated" 869 | }, 870 | { 871 | "trigger": "serpent128-gcm@libassh.org\tdeprecated cipher", 872 | "contents": "serpent128-gcm@libassh.org", 873 | "annotation": "deprecated cipher", 874 | "kind": [ 875 | "function", 876 | "c", 877 | "Cipher" 878 | ], 879 | "details": "Deprecated" 880 | }, 881 | { 882 | "trigger": "serpent192-cbc\tdeprecated cipher", 883 | "contents": "serpent192-cbc", 884 | "annotation": "deprecated cipher", 885 | "kind": [ 886 | "function", 887 | "c", 888 | "Cipher" 889 | ], 890 | "details": "Deprecated" 891 | }, 892 | { 893 | "trigger": "serpent192-ctr\tdeprecated cipher", 894 | "contents": "serpent192-ctr", 895 | "annotation": "deprecated cipher", 896 | "kind": [ 897 | "function", 898 | "c", 899 | "Cipher" 900 | ], 901 | "details": "Deprecated" 902 | }, 903 | { 904 | "trigger": "serpent256-cbc\tdeprecated cipher", 905 | "contents": "serpent256-cbc", 906 | "annotation": "deprecated cipher", 907 | "kind": [ 908 | "function", 909 | "c", 910 | "Cipher" 911 | ], 912 | "details": "Deprecated" 913 | }, 914 | { 915 | "trigger": "serpent256-ctr\tdeprecated cipher", 916 | "contents": "serpent256-ctr", 917 | "annotation": "deprecated cipher", 918 | "kind": [ 919 | "function", 920 | "c", 921 | "Cipher" 922 | ], 923 | "details": "Deprecated" 924 | }, 925 | { 926 | "trigger": "serpent256-gcm@libassh.org\tdeprecated cipher", 927 | "contents": "serpent256-gcm@libassh.org", 928 | "annotation": "deprecated cipher", 929 | "kind": [ 930 | "function", 931 | "c", 932 | "Cipher" 933 | ], 934 | "details": "Deprecated" 935 | }, 936 | { 937 | "trigger": "twofish128-cbc\tdeprecated cipher", 938 | "contents": "twofish128-cbc", 939 | "annotation": "deprecated cipher", 940 | "kind": [ 941 | "function", 942 | "c", 943 | "Cipher" 944 | ], 945 | "details": "Deprecated" 946 | }, 947 | { 948 | "trigger": "twofish192-cbc\tdeprecated cipher", 949 | "contents": "twofish192-cbc", 950 | "annotation": "deprecated cipher", 951 | "kind": [ 952 | "function", 953 | "c", 954 | "Cipher" 955 | ], 956 | "details": "Deprecated" 957 | }, 958 | { 959 | "trigger": "twofish256-cbc\tdeprecated cipher", 960 | "contents": "twofish256-cbc", 961 | "annotation": "deprecated cipher", 962 | "kind": [ 963 | "function", 964 | "c", 965 | "Cipher" 966 | ], 967 | "details": "Deprecated" 968 | }, 969 | { 970 | "trigger": "twofish-cbc\tdeprecated cipher", 971 | "contents": "twofish-cbc", 972 | "annotation": "deprecated cipher", 973 | "kind": [ 974 | "function", 975 | "c", 976 | "Cipher" 977 | ], 978 | "details": "Deprecated" 979 | }, 980 | { 981 | "trigger": "twofish-cfb\tdeprecated cipher", 982 | "contents": "twofish-cfb", 983 | "annotation": "deprecated cipher", 984 | "kind": [ 985 | "function", 986 | "c", 987 | "Cipher" 988 | ], 989 | "details": "Deprecated" 990 | }, 991 | { 992 | "trigger": "twofish-ecb\tdeprecated cipher", 993 | "contents": "twofish-ecb", 994 | "annotation": "deprecated cipher", 995 | "kind": [ 996 | "function", 997 | "c", 998 | "Cipher" 999 | ], 1000 | "details": "Deprecated" 1001 | }, 1002 | { 1003 | "trigger": "twofish-ofb\tdeprecated cipher", 1004 | "contents": "twofish-ofb", 1005 | "annotation": "deprecated cipher", 1006 | "kind": [ 1007 | "function", 1008 | "c", 1009 | "Cipher" 1010 | ], 1011 | "details": "Deprecated" 1012 | } 1013 | ] 1014 | } -------------------------------------------------------------------------------- /Support/kex-algorithms.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "(source.ssh_config | source.sshd_config) & meta.mapping.value - source source", 3 | "completions": [ 4 | { 5 | "trigger": "curve25519-sha256@libssh.org\tkex", 6 | "contents": "curve25519-sha256@libssh.org", 7 | "annotation": "kex", 8 | "kind": [ 9 | "function", 10 | "k", 11 | "Kex Algm" 12 | ] 13 | }, 14 | { 15 | "trigger": "curve25519-sha256\tkex", 16 | "contents": "curve25519-sha256", 17 | "annotation": "kex", 18 | "kind": [ 19 | "function", 20 | "k", 21 | "Kex Algm" 22 | ] 23 | }, 24 | { 25 | "trigger": "Curve25519SHA256\tkex", 26 | "contents": "Curve25519SHA256", 27 | "annotation": "kex", 28 | "kind": [ 29 | "function", 30 | "k", 31 | "Kex Algm" 32 | ] 33 | }, 34 | { 35 | "trigger": "curve448-sha512@libssh.org\tkex", 36 | "contents": "curve448-sha512@libssh.org", 37 | "annotation": "kex", 38 | "kind": [ 39 | "function", 40 | "k", 41 | "Kex Algm" 42 | ] 43 | }, 44 | { 45 | "trigger": "curve448-sha512\tkex", 46 | "contents": "curve448-sha512", 47 | "annotation": "kex", 48 | "kind": [ 49 | "function", 50 | "k", 51 | "Kex Algm" 52 | ] 53 | }, 54 | { 55 | "trigger": "diffie-hellman-group-exchange-sha256@ssh.com\tkex", 56 | "contents": "diffie-hellman-group-exchange-sha256@ssh.com", 57 | "annotation": "kex", 58 | "kind": [ 59 | "function", 60 | "k", 61 | "Kex Algm" 62 | ] 63 | }, 64 | { 65 | "trigger": "diffie-hellman-group-exchange-sha256\tkex", 66 | "contents": "diffie-hellman-group-exchange-sha256", 67 | "annotation": "kex", 68 | "kind": [ 69 | "function", 70 | "k", 71 | "Kex Algm" 72 | ] 73 | }, 74 | { 75 | "trigger": "diffie-hellman-group-exchange-sha512@ssh.com\tkex", 76 | "contents": "diffie-hellman-group-exchange-sha512@ssh.com", 77 | "annotation": "kex", 78 | "kind": [ 79 | "function", 80 | "k", 81 | "Kex Algm" 82 | ] 83 | }, 84 | { 85 | "trigger": "diffie-hellman-group1-sha256\tkex", 86 | "contents": "diffie-hellman-group1-sha256", 87 | "annotation": "kex", 88 | "kind": [ 89 | "function", 90 | "k", 91 | "Kex Algm" 92 | ] 93 | }, 94 | { 95 | "trigger": "diffie-hellman-group14-sha224@ssh.com\tkex", 96 | "contents": "diffie-hellman-group14-sha224@ssh.com", 97 | "annotation": "kex", 98 | "kind": [ 99 | "function", 100 | "k", 101 | "Kex Algm" 102 | ] 103 | }, 104 | { 105 | "trigger": "diffie-hellman-group14-sha256\tkex", 106 | "contents": "diffie-hellman-group14-sha256", 107 | "annotation": "kex", 108 | "kind": [ 109 | "function", 110 | "k", 111 | "Kex Algm" 112 | ] 113 | }, 114 | { 115 | "trigger": "diffie-hellman-group14-sha256@ssh.com\tkex", 116 | "contents": "diffie-hellman-group14-sha256@ssh.com", 117 | "annotation": "kex", 118 | "kind": [ 119 | "function", 120 | "k", 121 | "Kex Algm" 122 | ] 123 | }, 124 | { 125 | "trigger": "diffie-hellman-group15-sha256@ssh.com\tkex", 126 | "contents": "diffie-hellman-group15-sha256@ssh.com", 127 | "annotation": "kex", 128 | "kind": [ 129 | "function", 130 | "k", 131 | "Kex Algm" 132 | ] 133 | }, 134 | { 135 | "trigger": "diffie-hellman-group15-sha256\tkex", 136 | "contents": "diffie-hellman-group15-sha256", 137 | "annotation": "kex", 138 | "kind": [ 139 | "function", 140 | "k", 141 | "Kex Algm" 142 | ] 143 | }, 144 | { 145 | "trigger": "diffie-hellman-group15-sha384@ssh.com\tkex", 146 | "contents": "diffie-hellman-group15-sha384@ssh.com", 147 | "annotation": "kex", 148 | "kind": [ 149 | "function", 150 | "k", 151 | "Kex Algm" 152 | ] 153 | }, 154 | { 155 | "trigger": "diffie-hellman-group15-sha512\tkex", 156 | "contents": "diffie-hellman-group15-sha512", 157 | "annotation": "kex", 158 | "kind": [ 159 | "function", 160 | "k", 161 | "Kex Algm" 162 | ] 163 | }, 164 | { 165 | "trigger": "diffie-hellman-group16-sha256\tkex", 166 | "contents": "diffie-hellman-group16-sha256", 167 | "annotation": "kex", 168 | "kind": [ 169 | "function", 170 | "k", 171 | "Kex Algm" 172 | ] 173 | }, 174 | { 175 | "trigger": "diffie-hellman-group16-sha384@ssh.com\tkex", 176 | "contents": "diffie-hellman-group16-sha384@ssh.com", 177 | "annotation": "kex", 178 | "kind": [ 179 | "function", 180 | "k", 181 | "Kex Algm" 182 | ] 183 | }, 184 | { 185 | "trigger": "diffie-hellman-group16-sha512@ssh.com\tkex", 186 | "contents": "diffie-hellman-group16-sha512@ssh.com", 187 | "annotation": "kex", 188 | "kind": [ 189 | "function", 190 | "k", 191 | "Kex Algm" 192 | ] 193 | }, 194 | { 195 | "trigger": "diffie-hellman-group16-sha512\tkex", 196 | "contents": "diffie-hellman-group16-sha512", 197 | "annotation": "kex", 198 | "kind": [ 199 | "function", 200 | "k", 201 | "Kex Algm" 202 | ] 203 | }, 204 | { 205 | "trigger": "diffie-hellman-group17-sha512\tkex", 206 | "contents": "diffie-hellman-group17-sha512", 207 | "annotation": "kex", 208 | "kind": [ 209 | "function", 210 | "k", 211 | "Kex Algm" 212 | ] 213 | }, 214 | { 215 | "trigger": "diffie-hellman_group17-sha512\tkex", 216 | "contents": "diffie-hellman_group17-sha512", 217 | "annotation": "kex", 218 | "kind": [ 219 | "function", 220 | "k", 221 | "Kex Algm" 222 | ] 223 | }, 224 | { 225 | "trigger": "diffie-hellman-group18-sha512@ssh.com\tkex", 226 | "contents": "diffie-hellman-group18-sha512@ssh.com", 227 | "annotation": "kex", 228 | "kind": [ 229 | "function", 230 | "k", 231 | "Kex Algm" 232 | ] 233 | }, 234 | { 235 | "trigger": "diffie-hellman-group18-sha512\tkex", 236 | "contents": "diffie-hellman-group18-sha512", 237 | "annotation": "kex", 238 | "kind": [ 239 | "function", 240 | "k", 241 | "Kex Algm" 242 | ] 243 | }, 244 | { 245 | "trigger": "diffie-hellman-group-exchange-sha224@ssh.com\tkex", 246 | "contents": "diffie-hellman-group-exchange-sha224@ssh.com", 247 | "annotation": "kex", 248 | "kind": [ 249 | "function", 250 | "k", 251 | "Kex Algm" 252 | ] 253 | }, 254 | { 255 | "trigger": "diffie-hellman-group-exchange-sha256@ssh.com\tkex", 256 | "contents": "diffie-hellman-group-exchange-sha256@ssh.com", 257 | "annotation": "kex", 258 | "kind": [ 259 | "function", 260 | "k", 261 | "Kex Algm" 262 | ] 263 | }, 264 | { 265 | "trigger": "diffie-hellman-group-exchange-sha256\tkex", 266 | "contents": "diffie-hellman-group-exchange-sha256", 267 | "annotation": "kex", 268 | "kind": [ 269 | "function", 270 | "k", 271 | "Kex Algm" 272 | ] 273 | }, 274 | { 275 | "trigger": "diffie-hellman-group-exchange-sha384@ssh.com\tkex", 276 | "contents": "diffie-hellman-group-exchange-sha384@ssh.com", 277 | "annotation": "kex", 278 | "kind": [ 279 | "function", 280 | "k", 281 | "Kex Algm" 282 | ] 283 | }, 284 | { 285 | "trigger": "diffie-hellman-group-exchange-sha512@ssh.com\tkex", 286 | "contents": "diffie-hellman-group-exchange-sha512@ssh.com", 287 | "annotation": "kex", 288 | "kind": [ 289 | "function", 290 | "k", 291 | "Kex Algm" 292 | ] 293 | }, 294 | { 295 | "trigger": "ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org\tkex", 296 | "contents": "ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org", 297 | "annotation": "kex", 298 | "kind": [ 299 | "function", 300 | "k", 301 | "Kex Algm" 302 | ] 303 | }, 304 | { 305 | "trigger": "ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org\tkex", 306 | "contents": "ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org", 307 | "annotation": "kex", 308 | "kind": [ 309 | "function", 310 | "k", 311 | "Kex Algm" 312 | ] 313 | }, 314 | { 315 | "trigger": "ecdh-nistp521-kyber-1024r3-sha512-d00@openquantumsafe.org\tkex", 316 | "contents": "ecdh-nistp521-kyber-1024r3-sha512-d00@openquantumsafe.org", 317 | "annotation": "kex", 318 | "kind": [ 319 | "function", 320 | "k", 321 | "Kex Algm" 322 | ] 323 | }, 324 | { 325 | "trigger": "ecdh-sha2-1.2.840.10045.3.1.7\tkex", 326 | "contents": "ecdh-sha2-1.2.840.10045.3.1.7", 327 | "annotation": "kex", 328 | "kind": [ 329 | "function", 330 | "k", 331 | "Kex Algm" 332 | ] 333 | }, 334 | { 335 | "trigger": "ecdh-sha2-1.3.132.0.10\tkex", 336 | "contents": "ecdh-sha2-1.3.132.0.10", 337 | "annotation": "kex", 338 | "kind": [ 339 | "function", 340 | "k", 341 | "Kex Algm" 342 | ] 343 | }, 344 | { 345 | "trigger": "ecdh-sha2-1.3.132.0.16\tkex", 346 | "contents": "ecdh-sha2-1.3.132.0.16", 347 | "annotation": "kex", 348 | "kind": [ 349 | "function", 350 | "k", 351 | "Kex Algm" 352 | ] 353 | }, 354 | { 355 | "trigger": "ecdh-sha2-1.3.132.0.34\tkex", 356 | "contents": "ecdh-sha2-1.3.132.0.34", 357 | "annotation": "kex", 358 | "kind": [ 359 | "function", 360 | "k", 361 | "Kex Algm" 362 | ] 363 | }, 364 | { 365 | "trigger": "ecdh-sha2-1.3.132.0.35\tkex", 366 | "contents": "ecdh-sha2-1.3.132.0.35", 367 | "annotation": "kex", 368 | "kind": [ 369 | "function", 370 | "k", 371 | "Kex Algm" 372 | ] 373 | }, 374 | { 375 | "trigger": "ecdh-sha2-1.3.132.0.36\tkex", 376 | "contents": "ecdh-sha2-1.3.132.0.36", 377 | "annotation": "kex", 378 | "kind": [ 379 | "function", 380 | "k", 381 | "Kex Algm" 382 | ] 383 | }, 384 | { 385 | "trigger": "ecdh-sha2-1.3.132.0.37\tkex", 386 | "contents": "ecdh-sha2-1.3.132.0.37", 387 | "annotation": "kex", 388 | "kind": [ 389 | "function", 390 | "k", 391 | "Kex Algm" 392 | ] 393 | }, 394 | { 395 | "trigger": "ecdh-sha2-1.3.132.0.38\tkex", 396 | "contents": "ecdh-sha2-1.3.132.0.38", 397 | "annotation": "kex", 398 | "kind": [ 399 | "function", 400 | "k", 401 | "Kex Algm" 402 | ] 403 | }, 404 | { 405 | "trigger": "ecdh-sha2-9UzNcgwTlEnSCECZa7V1mw==\tkex", 406 | "contents": "ecdh-sha2-9UzNcgwTlEnSCECZa7V1mw==", 407 | "annotation": "kex", 408 | "kind": [ 409 | "function", 410 | "k", 411 | "Kex Algm" 412 | ] 413 | }, 414 | { 415 | "trigger": "ecdh-sha2-brainpoolp256r1@genua.de\tkex", 416 | "contents": "ecdh-sha2-brainpoolp256r1@genua.de", 417 | "annotation": "kex", 418 | "kind": [ 419 | "function", 420 | "k", 421 | "Kex Algm" 422 | ] 423 | }, 424 | { 425 | "trigger": "ecdh-sha2-brainpoolp384r1@genua.de\tkex", 426 | "contents": "ecdh-sha2-brainpoolp384r1@genua.de", 427 | "annotation": "kex", 428 | "kind": [ 429 | "function", 430 | "k", 431 | "Kex Algm" 432 | ] 433 | }, 434 | { 435 | "trigger": "ecdh-sha2-brainpoolp521r1@genua.de\tkex", 436 | "contents": "ecdh-sha2-brainpoolp521r1@genua.de", 437 | "annotation": "kex", 438 | "kind": [ 439 | "function", 440 | "k", 441 | "Kex Algm" 442 | ] 443 | }, 444 | { 445 | "trigger": "ecdh-sha2-curve25519\tkex", 446 | "contents": "ecdh-sha2-curve25519", 447 | "annotation": "kex", 448 | "kind": [ 449 | "function", 450 | "k", 451 | "Kex Algm" 452 | ] 453 | }, 454 | { 455 | "trigger": "ecdh-sha2-D3FefCjYoJ/kfXgAyLddYA==\tkex", 456 | "contents": "ecdh-sha2-D3FefCjYoJ/kfXgAyLddYA==", 457 | "annotation": "kex", 458 | "kind": [ 459 | "function", 460 | "k", 461 | "Kex Algm" 462 | ] 463 | }, 464 | { 465 | "trigger": "ecdh-sha2-h/SsxnLCtRBh7I9ATyeB3A==\tkex", 466 | "contents": "ecdh-sha2-h/SsxnLCtRBh7I9ATyeB3A==", 467 | "annotation": "kex", 468 | "kind": [ 469 | "function", 470 | "k", 471 | "Kex Algm" 472 | ] 473 | }, 474 | { 475 | "trigger": "ecdh-sha2-m/FtSAmrV4j/Wy6RVUaK7A==\tkex", 476 | "contents": "ecdh-sha2-m/FtSAmrV4j/Wy6RVUaK7A==", 477 | "annotation": "kex", 478 | "kind": [ 479 | "function", 480 | "k", 481 | "Kex Algm" 482 | ] 483 | }, 484 | { 485 | "trigger": "ecdh-sha2-mNVwCXAoS1HGmHpLvBC94w==\tkex", 486 | "contents": "ecdh-sha2-mNVwCXAoS1HGmHpLvBC94w==", 487 | "annotation": "kex", 488 | "kind": [ 489 | "function", 490 | "k", 491 | "Kex Algm" 492 | ] 493 | }, 494 | { 495 | "trigger": "ecdh-sha2-nistb409\tkex", 496 | "contents": "ecdh-sha2-nistb409", 497 | "annotation": "kex", 498 | "kind": [ 499 | "function", 500 | "k", 501 | "Kex Algm" 502 | ] 503 | }, 504 | { 505 | "trigger": "ecdh-sha2-nistk283\tkex", 506 | "contents": "ecdh-sha2-nistk283", 507 | "annotation": "kex", 508 | "kind": [ 509 | "function", 510 | "k", 511 | "Kex Algm" 512 | ] 513 | }, 514 | { 515 | "trigger": "ecdh-sha2-nistk409\tkex", 516 | "contents": "ecdh-sha2-nistk409", 517 | "annotation": "kex", 518 | "kind": [ 519 | "function", 520 | "k", 521 | "Kex Algm" 522 | ] 523 | }, 524 | { 525 | "trigger": "ecdh-sha2-nistp192\tkex", 526 | "contents": "ecdh-sha2-nistp192", 527 | "annotation": "kex", 528 | "kind": [ 529 | "function", 530 | "k", 531 | "Kex Algm" 532 | ] 533 | }, 534 | { 535 | "trigger": "ecdh-sha2-nistp224\tkex", 536 | "contents": "ecdh-sha2-nistp224", 537 | "annotation": "kex", 538 | "kind": [ 539 | "function", 540 | "k", 541 | "Kex Algm" 542 | ] 543 | }, 544 | { 545 | "trigger": "ecdh-sha2-nistp256\tkex", 546 | "contents": "ecdh-sha2-nistp256", 547 | "annotation": "kex", 548 | "kind": [ 549 | "function", 550 | "k", 551 | "Kex Algm" 552 | ] 553 | }, 554 | { 555 | "trigger": "ecdh-sha2-nistp384\tkex", 556 | "contents": "ecdh-sha2-nistp384", 557 | "annotation": "kex", 558 | "kind": [ 559 | "function", 560 | "k", 561 | "Kex Algm" 562 | ] 563 | }, 564 | { 565 | "trigger": "ecdh-sha2-nistp521\tkex", 566 | "contents": "ecdh-sha2-nistp521", 567 | "annotation": "kex", 568 | "kind": [ 569 | "function", 570 | "k", 571 | "Kex Algm" 572 | ] 573 | }, 574 | { 575 | "trigger": "ecdh-sha2-nistt571\tkex", 576 | "contents": "ecdh-sha2-nistt571", 577 | "annotation": "kex", 578 | "kind": [ 579 | "function", 580 | "k", 581 | "Kex Algm" 582 | ] 583 | }, 584 | { 585 | "trigger": "ecdh-sha2-qcFQaMAMGhTziMT0z+Tuzw==\tkex", 586 | "contents": "ecdh-sha2-qcFQaMAMGhTziMT0z+Tuzw==", 587 | "annotation": "kex", 588 | "kind": [ 589 | "function", 590 | "k", 591 | "Kex Algm" 592 | ] 593 | }, 594 | { 595 | "trigger": "ecdh-sha2-wiRIU8TKjMZ418sMqlqtvQ==\tkex", 596 | "contents": "ecdh-sha2-wiRIU8TKjMZ418sMqlqtvQ==", 597 | "annotation": "kex", 598 | "kind": [ 599 | "function", 600 | "k", 601 | "Kex Algm" 602 | ] 603 | }, 604 | { 605 | "trigger": "ecmqv-sha2\tkex", 606 | "contents": "ecmqv-sha2", 607 | "annotation": "kex", 608 | "kind": [ 609 | "function", 610 | "k", 611 | "Kex Algm" 612 | ] 613 | }, 614 | { 615 | "trigger": "ext-info-c\tkex", 616 | "contents": "ext-info-c", 617 | "annotation": "kex", 618 | "kind": [ 619 | "function", 620 | "k", 621 | "Kex Algm" 622 | ] 623 | }, 624 | { 625 | "trigger": "ext-info-s\tkex", 626 | "contents": "ext-info-s", 627 | "annotation": "kex", 628 | "kind": [ 629 | "function", 630 | "k", 631 | "Kex Algm" 632 | ] 633 | }, 634 | { 635 | "trigger": "gss-13.3.132.0.10-sha256-\tkex", 636 | "contents": "gss-13.3.132.0.10-sha256-", 637 | "annotation": "kex", 638 | "kind": [ 639 | "function", 640 | "k", 641 | "Kex Algm" 642 | ] 643 | }, 644 | { 645 | "trigger": "gss-curve25519-sha256-\tkex", 646 | "contents": "gss-curve25519-sha256-", 647 | "annotation": "kex", 648 | "kind": [ 649 | "function", 650 | "k", 651 | "Kex Algm" 652 | ] 653 | }, 654 | { 655 | "trigger": "gss-curve448-sha512-\tkex", 656 | "contents": "gss-curve448-sha512-", 657 | "annotation": "kex", 658 | "kind": [ 659 | "function", 660 | "k", 661 | "Kex Algm" 662 | ] 663 | }, 664 | { 665 | "trigger": "gss-gex-sha256-\tkex", 666 | "contents": "gss-gex-sha256-", 667 | "annotation": "kex", 668 | "kind": [ 669 | "function", 670 | "k", 671 | "Kex Algm" 672 | ] 673 | }, 674 | { 675 | "trigger": "gss-group14-sha256-toWM5Slw5Ew8Mqkay+al2g==\tkex", 676 | "contents": "gss-group14-sha256-toWM5Slw5Ew8Mqkay+al2g==", 677 | "annotation": "kex", 678 | "kind": [ 679 | "function", 680 | "k", 681 | "Kex Algm" 682 | ] 683 | }, 684 | { 685 | "trigger": "gss-group14-sha256-\tkex", 686 | "contents": "gss-group14-sha256-", 687 | "annotation": "kex", 688 | "kind": [ 689 | "function", 690 | "k", 691 | "Kex Algm" 692 | ] 693 | }, 694 | { 695 | "trigger": "gss-group15-sha512-toWM5Slw5Ew8Mqkay+al2g==\tkex", 696 | "contents": "gss-group15-sha512-toWM5Slw5Ew8Mqkay+al2g==", 697 | "annotation": "kex", 698 | "kind": [ 699 | "function", 700 | "k", 701 | "Kex Algm" 702 | ] 703 | }, 704 | { 705 | "trigger": "gss-group15-sha512-\tkex", 706 | "contents": "gss-group15-sha512-", 707 | "annotation": "kex", 708 | "kind": [ 709 | "function", 710 | "k", 711 | "Kex Algm" 712 | ] 713 | }, 714 | { 715 | "trigger": "gss-group16-sha512-\tkex", 716 | "contents": "gss-group16-sha512-", 717 | "annotation": "kex", 718 | "kind": [ 719 | "function", 720 | "k", 721 | "Kex Algm" 722 | ] 723 | }, 724 | { 725 | "trigger": "gss-group17-sha512-\tkex", 726 | "contents": "gss-group17-sha512-", 727 | "annotation": "kex", 728 | "kind": [ 729 | "function", 730 | "k", 731 | "Kex Algm" 732 | ] 733 | }, 734 | { 735 | "trigger": "gss-group18-sha512-\tkex", 736 | "contents": "gss-group18-sha512-", 737 | "annotation": "kex", 738 | "kind": [ 739 | "function", 740 | "k", 741 | "Kex Algm" 742 | ] 743 | }, 744 | { 745 | "trigger": "gss-nistp256-sha256-\tkex", 746 | "contents": "gss-nistp256-sha256-", 747 | "annotation": "kex", 748 | "kind": [ 749 | "function", 750 | "k", 751 | "Kex Algm" 752 | ] 753 | }, 754 | { 755 | "trigger": "gss-nistp384-sha256-\tkex", 756 | "contents": "gss-nistp384-sha256-", 757 | "annotation": "kex", 758 | "kind": [ 759 | "function", 760 | "k", 761 | "Kex Algm" 762 | ] 763 | }, 764 | { 765 | "trigger": "gss-nistp384-sha384-\tkex", 766 | "contents": "gss-nistp384-sha384-", 767 | "annotation": "kex", 768 | "kind": [ 769 | "function", 770 | "k", 771 | "Kex Algm" 772 | ] 773 | }, 774 | { 775 | "trigger": "gss-nistp521-sha512-\tkex", 776 | "contents": "gss-nistp521-sha512-", 777 | "annotation": "kex", 778 | "kind": [ 779 | "function", 780 | "k", 781 | "Kex Algm" 782 | ] 783 | }, 784 | { 785 | "trigger": "kexAlgoCurve25519SHA256\tkex", 786 | "contents": "kexAlgoCurve25519SHA256", 787 | "annotation": "kex", 788 | "kind": [ 789 | "function", 790 | "k", 791 | "Kex Algm" 792 | ] 793 | }, 794 | { 795 | "trigger": "kexAlgoECDH256\tkex", 796 | "contents": "kexAlgoECDH256", 797 | "annotation": "kex", 798 | "kind": [ 799 | "function", 800 | "k", 801 | "Kex Algm" 802 | ] 803 | }, 804 | { 805 | "trigger": "kexAlgoECDH384\tkex", 806 | "contents": "kexAlgoECDH384", 807 | "annotation": "kex", 808 | "kind": [ 809 | "function", 810 | "k", 811 | "Kex Algm" 812 | ] 813 | }, 814 | { 815 | "trigger": "kexAlgoECDH521\tkex", 816 | "contents": "kexAlgoECDH521", 817 | "annotation": "kex", 818 | "kind": [ 819 | "function", 820 | "k", 821 | "Kex Algm" 822 | ] 823 | }, 824 | { 825 | "trigger": "kexguess2@matt.ucc.asn.au\tkex", 826 | "contents": "kexguess2@matt.ucc.asn.au", 827 | "annotation": "kex", 828 | "kind": [ 829 | "function", 830 | "k", 831 | "Kex Algm" 832 | ] 833 | }, 834 | { 835 | "trigger": "kex-strict-c-v00@openssh.com\tkex", 836 | "contents": "kex-strict-c-v00@openssh.com", 837 | "annotation": "kex", 838 | "kind": [ 839 | "function", 840 | "k", 841 | "Kex Algm" 842 | ] 843 | }, 844 | { 845 | "trigger": "kex-strict-s-v00@openssh.com\tkex", 846 | "contents": "kex-strict-s-v00@openssh.com", 847 | "annotation": "kex", 848 | "kind": [ 849 | "function", 850 | "k", 851 | "Kex Algm" 852 | ] 853 | }, 854 | { 855 | "trigger": "m383-sha384@libassh.org\tkex", 856 | "contents": "m383-sha384@libassh.org", 857 | "annotation": "kex", 858 | "kind": [ 859 | "function", 860 | "k", 861 | "Kex Algm" 862 | ] 863 | }, 864 | { 865 | "trigger": "m511-sha512@libassh.org\tkex", 866 | "contents": "m511-sha512@libassh.org", 867 | "annotation": "kex", 868 | "kind": [ 869 | "function", 870 | "k", 871 | "Kex Algm" 872 | ] 873 | }, 874 | { 875 | "trigger": "mlkem768x25519-sha256\tkex", 876 | "contents": "mlkem768x25519-sha256", 877 | "annotation": "kex", 878 | "kind": [ 879 | "function", 880 | "k", 881 | "Kex Algm" 882 | ] 883 | }, 884 | { 885 | "trigger": "rsa2048-sha256\tkex", 886 | "contents": "rsa2048-sha256", 887 | "annotation": "kex", 888 | "kind": [ 889 | "function", 890 | "k", 891 | "Kex Algm" 892 | ] 893 | }, 894 | { 895 | "trigger": "sm2kep-sha2-nistp256\tkex", 896 | "contents": "sm2kep-sha2-nistp256", 897 | "annotation": "kex", 898 | "kind": [ 899 | "function", 900 | "k", 901 | "Kex Algm" 902 | ] 903 | }, 904 | { 905 | "trigger": "sntrup4591761x25519-sha512@tinyssh.org\tkex", 906 | "contents": "sntrup4591761x25519-sha512@tinyssh.org", 907 | "annotation": "kex", 908 | "kind": [ 909 | "function", 910 | "k", 911 | "Kex Algm" 912 | ] 913 | }, 914 | { 915 | "trigger": "sntrup761x25519-sha512@openssh.com\tkex", 916 | "contents": "sntrup761x25519-sha512@openssh.com", 917 | "annotation": "kex", 918 | "kind": [ 919 | "function", 920 | "k", 921 | "Kex Algm" 922 | ] 923 | }, 924 | { 925 | "trigger": "x25519-kyber-512r3-sha256-d00@amazon.com\tkex", 926 | "contents": "x25519-kyber-512r3-sha256-d00@amazon.com", 927 | "annotation": "kex", 928 | "kind": [ 929 | "function", 930 | "k", 931 | "Kex Algm" 932 | ] 933 | }, 934 | { 935 | "trigger": "x25519-kyber512-sha512@aws.amazon.com\tkex", 936 | "contents": "x25519-kyber512-sha512@aws.amazon.com", 937 | "annotation": "kex", 938 | "kind": [ 939 | "function", 940 | "k", 941 | "Kex Algm" 942 | ] 943 | }, 944 | { 945 | "trigger": "diffie-hellman-group-exchange-sha1\tdeprecated kex", 946 | "contents": "diffie-hellman-group-exchange-sha1", 947 | "annotation": "deprecated kex", 948 | "kind": [ 949 | "function", 950 | "k", 951 | "Kex Algm" 952 | ], 953 | "details": "Deprecated" 954 | }, 955 | { 956 | "trigger": "diffie-hellman-group1-sha1\tdeprecated kex", 957 | "contents": "diffie-hellman-group1-sha1", 958 | "annotation": "deprecated kex", 959 | "kind": [ 960 | "function", 961 | "k", 962 | "Kex Algm" 963 | ], 964 | "details": "Deprecated" 965 | }, 966 | { 967 | "trigger": "diffie-hellman-group14-sha1\tdeprecated kex", 968 | "contents": "diffie-hellman-group14-sha1", 969 | "annotation": "deprecated kex", 970 | "kind": [ 971 | "function", 972 | "k", 973 | "Kex Algm" 974 | ], 975 | "details": "Deprecated" 976 | }, 977 | { 978 | "trigger": "ecdh-sha2-1.2.840.10045.3.1.1\tdeprecated kex", 979 | "contents": "ecdh-sha2-1.2.840.10045.3.1.1", 980 | "annotation": "deprecated kex", 981 | "kind": [ 982 | "function", 983 | "k", 984 | "Kex Algm" 985 | ], 986 | "details": "Deprecated" 987 | }, 988 | { 989 | "trigger": "ecdh-sha2-1.3.132.0.1\tdeprecated kex", 990 | "contents": "ecdh-sha2-1.3.132.0.1", 991 | "annotation": "deprecated kex", 992 | "kind": [ 993 | "function", 994 | "k", 995 | "Kex Algm" 996 | ], 997 | "details": "Deprecated" 998 | }, 999 | { 1000 | "trigger": "ecdh-sha2-1.3.132.0.26\tdeprecated kex", 1001 | "contents": "ecdh-sha2-1.3.132.0.26", 1002 | "annotation": "deprecated kex", 1003 | "kind": [ 1004 | "function", 1005 | "k", 1006 | "Kex Algm" 1007 | ], 1008 | "details": "Deprecated" 1009 | }, 1010 | { 1011 | "trigger": "ecdh-sha2-1.3.132.0.27\tdeprecated kex", 1012 | "contents": "ecdh-sha2-1.3.132.0.27", 1013 | "annotation": "deprecated kex", 1014 | "kind": [ 1015 | "function", 1016 | "k", 1017 | "Kex Algm" 1018 | ], 1019 | "details": "Deprecated" 1020 | }, 1021 | { 1022 | "trigger": "ecdh-sha2-1.3.132.0.33\tdeprecated kex", 1023 | "contents": "ecdh-sha2-1.3.132.0.33", 1024 | "annotation": "deprecated kex", 1025 | "kind": [ 1026 | "function", 1027 | "k", 1028 | "Kex Algm" 1029 | ], 1030 | "details": "Deprecated" 1031 | }, 1032 | { 1033 | "trigger": "ecdh-sha2-4MHB+NBt3AlaSRQ7MnB4cg==\tdeprecated kex", 1034 | "contents": "ecdh-sha2-4MHB+NBt3AlaSRQ7MnB4cg==", 1035 | "annotation": "deprecated kex", 1036 | "kind": [ 1037 | "function", 1038 | "k", 1039 | "Kex Algm" 1040 | ], 1041 | "details": "Deprecated" 1042 | }, 1043 | { 1044 | "trigger": "ecdh-sha2-5pPrSUQtIaTjUSt5VZNBjg==\tdeprecated kex", 1045 | "contents": "ecdh-sha2-5pPrSUQtIaTjUSt5VZNBjg==", 1046 | "annotation": "deprecated kex", 1047 | "kind": [ 1048 | "function", 1049 | "k", 1050 | "Kex Algm" 1051 | ], 1052 | "details": "Deprecated" 1053 | }, 1054 | { 1055 | "trigger": "ecdh-sha2-nistb233\tdeprecated kex", 1056 | "contents": "ecdh-sha2-nistb233", 1057 | "annotation": "deprecated kex", 1058 | "kind": [ 1059 | "function", 1060 | "k", 1061 | "Kex Algm" 1062 | ], 1063 | "details": "Deprecated" 1064 | }, 1065 | { 1066 | "trigger": "ecdh-sha2-nistk163\tdeprecated kex", 1067 | "contents": "ecdh-sha2-nistk163", 1068 | "annotation": "deprecated kex", 1069 | "kind": [ 1070 | "function", 1071 | "k", 1072 | "Kex Algm" 1073 | ], 1074 | "details": "Deprecated" 1075 | }, 1076 | { 1077 | "trigger": "ecdh-sha2-nistk233\tdeprecated kex", 1078 | "contents": "ecdh-sha2-nistk233", 1079 | "annotation": "deprecated kex", 1080 | "kind": [ 1081 | "function", 1082 | "k", 1083 | "Kex Algm" 1084 | ], 1085 | "details": "Deprecated" 1086 | }, 1087 | { 1088 | "trigger": "ecdh-sha2-qCbG5Cn/jjsZ7nBeR7EnOA==\tdeprecated kex", 1089 | "contents": "ecdh-sha2-qCbG5Cn/jjsZ7nBeR7EnOA==", 1090 | "annotation": "deprecated kex", 1091 | "kind": [ 1092 | "function", 1093 | "k", 1094 | "Kex Algm" 1095 | ], 1096 | "details": "Deprecated" 1097 | }, 1098 | { 1099 | "trigger": "ecdh-sha2-VqBg4QRPjxx1EXZdV0GdWQ==\tdeprecated kex", 1100 | "contents": "ecdh-sha2-VqBg4QRPjxx1EXZdV0GdWQ==", 1101 | "annotation": "deprecated kex", 1102 | "kind": [ 1103 | "function", 1104 | "k", 1105 | "Kex Algm" 1106 | ], 1107 | "details": "Deprecated" 1108 | }, 1109 | { 1110 | "trigger": "ecdh-sha2-zD/b3hu/71952ArpUG4OjQ==\tdeprecated kex", 1111 | "contents": "ecdh-sha2-zD/b3hu/71952ArpUG4OjQ==", 1112 | "annotation": "deprecated kex", 1113 | "kind": [ 1114 | "function", 1115 | "k", 1116 | "Kex Algm" 1117 | ], 1118 | "details": "Deprecated" 1119 | }, 1120 | { 1121 | "trigger": "gss-gex-sha1-toWM5Slw5Ew8Mqkay+al2g==\tdeprecated kex", 1122 | "contents": "gss-gex-sha1-toWM5Slw5Ew8Mqkay+al2g==", 1123 | "annotation": "deprecated kex", 1124 | "kind": [ 1125 | "function", 1126 | "k", 1127 | "Kex Algm" 1128 | ], 1129 | "details": "Deprecated" 1130 | }, 1131 | { 1132 | "trigger": "gss-gex-sha1-\tdeprecated kex", 1133 | "contents": "gss-gex-sha1-", 1134 | "annotation": "deprecated kex", 1135 | "kind": [ 1136 | "function", 1137 | "k", 1138 | "Kex Algm" 1139 | ], 1140 | "details": "Deprecated" 1141 | }, 1142 | { 1143 | "trigger": "gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==\tdeprecated kex", 1144 | "contents": "gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==", 1145 | "annotation": "deprecated kex", 1146 | "kind": [ 1147 | "function", 1148 | "k", 1149 | "Kex Algm" 1150 | ], 1151 | "details": "Deprecated" 1152 | }, 1153 | { 1154 | "trigger": "gss-group1-sha1-\tdeprecated kex", 1155 | "contents": "gss-group1-sha1-", 1156 | "annotation": "deprecated kex", 1157 | "kind": [ 1158 | "function", 1159 | "k", 1160 | "Kex Algm" 1161 | ], 1162 | "details": "Deprecated" 1163 | }, 1164 | { 1165 | "trigger": "gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==\tdeprecated kex", 1166 | "contents": "gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==", 1167 | "annotation": "deprecated kex", 1168 | "kind": [ 1169 | "function", 1170 | "k", 1171 | "Kex Algm" 1172 | ], 1173 | "details": "Deprecated" 1174 | }, 1175 | { 1176 | "trigger": "gss-group14-sha1-\tdeprecated kex", 1177 | "contents": "gss-group14-sha1-", 1178 | "annotation": "deprecated kex", 1179 | "kind": [ 1180 | "function", 1181 | "k", 1182 | "Kex Algm" 1183 | ], 1184 | "details": "Deprecated" 1185 | }, 1186 | { 1187 | "trigger": "kexAlgoDH14SHA1\tdeprecated kex", 1188 | "contents": "kexAlgoDH14SHA1", 1189 | "annotation": "deprecated kex", 1190 | "kind": [ 1191 | "function", 1192 | "k", 1193 | "Kex Algm" 1194 | ], 1195 | "details": "Deprecated" 1196 | }, 1197 | { 1198 | "trigger": "kexAlgoDH1SHA1\tdeprecated kex", 1199 | "contents": "kexAlgoDH1SHA1", 1200 | "annotation": "deprecated kex", 1201 | "kind": [ 1202 | "function", 1203 | "k", 1204 | "Kex Algm" 1205 | ], 1206 | "details": "Deprecated" 1207 | }, 1208 | { 1209 | "trigger": "rsa1024-sha1\tdeprecated kex", 1210 | "contents": "rsa1024-sha1", 1211 | "annotation": "deprecated kex", 1212 | "kind": [ 1213 | "function", 1214 | "k", 1215 | "Kex Algm" 1216 | ], 1217 | "details": "Deprecated" 1218 | } 1219 | ] 1220 | } -------------------------------------------------------------------------------- /Support/key-types.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "(source.ssh_config | source.sshd_config) & meta.mapping.value - source source, (text.authorized_keys | text.known_hosts) - comment - string", 3 | "completions": [ 4 | { 5 | "trigger": "dsa2048-sha224@libassh.org\tkey type", 6 | "contents": "dsa2048-sha224@libassh.org", 7 | "annotation": "key type", 8 | "kind": [ 9 | "type", 10 | "k", 11 | "Key type" 12 | ] 13 | }, 14 | { 15 | "trigger": "dsa2048-sha256@libassh.org\tkey type", 16 | "contents": "dsa2048-sha256@libassh.org", 17 | "annotation": "key type", 18 | "kind": [ 19 | "type", 20 | "k", 21 | "Key type" 22 | ] 23 | }, 24 | { 25 | "trigger": "dsa3072-sha256@libassh.org\tkey type", 26 | "contents": "dsa3072-sha256@libassh.org", 27 | "annotation": "key type", 28 | "kind": [ 29 | "type", 30 | "k", 31 | "Key type" 32 | ] 33 | }, 34 | { 35 | "trigger": "ecdsa-sha2-1.3.132.0.10-cert-v01@openssh.com\tkey type", 36 | "contents": "ecdsa-sha2-1.3.132.0.10-cert-v01@openssh.com", 37 | "annotation": "key type", 38 | "kind": [ 39 | "type", 40 | "k", 41 | "Key type" 42 | ] 43 | }, 44 | { 45 | "trigger": "ecdsa-sha2-1.3.132.0.10\tkey type", 46 | "contents": "ecdsa-sha2-1.3.132.0.10", 47 | "annotation": "key type", 48 | "kind": [ 49 | "type", 50 | "k", 51 | "Key type" 52 | ] 53 | }, 54 | { 55 | "trigger": "ecdsa-sha2-curve25519\tkey type", 56 | "contents": "ecdsa-sha2-curve25519", 57 | "annotation": "key type", 58 | "kind": [ 59 | "type", 60 | "k", 61 | "Key type" 62 | ] 63 | }, 64 | { 65 | "trigger": "ecdsa-sha2-nistb409\tkey type", 66 | "contents": "ecdsa-sha2-nistb409", 67 | "annotation": "key type", 68 | "kind": [ 69 | "type", 70 | "k", 71 | "Key type" 72 | ] 73 | }, 74 | { 75 | "trigger": "ecdsa-sha2-nistk163\tkey type", 76 | "contents": "ecdsa-sha2-nistk163", 77 | "annotation": "key type", 78 | "kind": [ 79 | "type", 80 | "k", 81 | "Key type" 82 | ] 83 | }, 84 | { 85 | "trigger": "ecdsa-sha2-nistk233\tkey type", 86 | "contents": "ecdsa-sha2-nistk233", 87 | "annotation": "key type", 88 | "kind": [ 89 | "type", 90 | "k", 91 | "Key type" 92 | ] 93 | }, 94 | { 95 | "trigger": "ecdsa-sha2-nistk283\tkey type", 96 | "contents": "ecdsa-sha2-nistk283", 97 | "annotation": "key type", 98 | "kind": [ 99 | "type", 100 | "k", 101 | "Key type" 102 | ] 103 | }, 104 | { 105 | "trigger": "ecdsa-sha2-nistk409\tkey type", 106 | "contents": "ecdsa-sha2-nistk409", 107 | "annotation": "key type", 108 | "kind": [ 109 | "type", 110 | "k", 111 | "Key type" 112 | ] 113 | }, 114 | { 115 | "trigger": "ecdsa-sha2-nistp256-cert-v01@openssh.com\tkey type", 116 | "contents": "ecdsa-sha2-nistp256-cert-v01@openssh.com", 117 | "annotation": "key type", 118 | "kind": [ 119 | "type", 120 | "k", 121 | "Key type" 122 | ] 123 | }, 124 | { 125 | "trigger": "ecdsa-sha2-nistp256\tkey type", 126 | "contents": "ecdsa-sha2-nistp256", 127 | "annotation": "key type", 128 | "kind": [ 129 | "type", 130 | "k", 131 | "Key type" 132 | ] 133 | }, 134 | { 135 | "trigger": "ecdsa-sha2-nistp384-cert-v01@openssh.com\tkey type", 136 | "contents": "ecdsa-sha2-nistp384-cert-v01@openssh.com", 137 | "annotation": "key type", 138 | "kind": [ 139 | "type", 140 | "k", 141 | "Key type" 142 | ] 143 | }, 144 | { 145 | "trigger": "ecdsa-sha2-nistp384\tkey type", 146 | "contents": "ecdsa-sha2-nistp384", 147 | "annotation": "key type", 148 | "kind": [ 149 | "type", 150 | "k", 151 | "Key type" 152 | ] 153 | }, 154 | { 155 | "trigger": "ecdsa-sha2-nistp521-cert-v01@openssh.com\tkey type", 156 | "contents": "ecdsa-sha2-nistp521-cert-v01@openssh.com", 157 | "annotation": "key type", 158 | "kind": [ 159 | "type", 160 | "k", 161 | "Key type" 162 | ] 163 | }, 164 | { 165 | "trigger": "ecdsa-sha2-nistp521\tkey type", 166 | "contents": "ecdsa-sha2-nistp521", 167 | "annotation": "key type", 168 | "kind": [ 169 | "type", 170 | "k", 171 | "Key type" 172 | ] 173 | }, 174 | { 175 | "trigger": "ecdsa-sha2-nistt571\tkey type", 176 | "contents": "ecdsa-sha2-nistt571", 177 | "annotation": "key type", 178 | "kind": [ 179 | "type", 180 | "k", 181 | "Key type" 182 | ] 183 | }, 184 | { 185 | "trigger": "eddsa-e382-shake256@libassh.org\tkey type", 186 | "contents": "eddsa-e382-shake256@libassh.org", 187 | "annotation": "key type", 188 | "kind": [ 189 | "type", 190 | "k", 191 | "Key type" 192 | ] 193 | }, 194 | { 195 | "trigger": "eddsa-e521-shake256@libassh.org\tkey type", 196 | "contents": "eddsa-e521-shake256@libassh.org", 197 | "annotation": "key type", 198 | "kind": [ 199 | "type", 200 | "k", 201 | "Key type" 202 | ] 203 | }, 204 | { 205 | "trigger": "rsa-sha2-256-cert-v01@openssh.com\tkey type", 206 | "contents": "rsa-sha2-256-cert-v01@openssh.com", 207 | "annotation": "key type", 208 | "kind": [ 209 | "type", 210 | "k", 211 | "Key type" 212 | ] 213 | }, 214 | { 215 | "trigger": "rsa-sha2-256\tkey type", 216 | "contents": "rsa-sha2-256", 217 | "annotation": "key type", 218 | "kind": [ 219 | "type", 220 | "k", 221 | "Key type" 222 | ] 223 | }, 224 | { 225 | "trigger": "rsa-sha2-512-cert-v01@openssh.com\tkey type", 226 | "contents": "rsa-sha2-512-cert-v01@openssh.com", 227 | "annotation": "key type", 228 | "kind": [ 229 | "type", 230 | "k", 231 | "Key type" 232 | ] 233 | }, 234 | { 235 | "trigger": "rsa-sha2-512\tkey type", 236 | "contents": "rsa-sha2-512", 237 | "annotation": "key type", 238 | "kind": [ 239 | "type", 240 | "k", 241 | "Key type" 242 | ] 243 | }, 244 | { 245 | "trigger": "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com\tkey type", 246 | "contents": "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com", 247 | "annotation": "key type", 248 | "kind": [ 249 | "type", 250 | "k", 251 | "Key type" 252 | ] 253 | }, 254 | { 255 | "trigger": "sk-ecdsa-sha2-nistp256@openssh.com\tkey type", 256 | "contents": "sk-ecdsa-sha2-nistp256@openssh.com", 257 | "annotation": "key type", 258 | "kind": [ 259 | "type", 260 | "k", 261 | "Key type" 262 | ] 263 | }, 264 | { 265 | "trigger": "spi-sign-rsa\tkey type", 266 | "contents": "spi-sign-rsa", 267 | "annotation": "key type", 268 | "kind": [ 269 | "type", 270 | "k", 271 | "Key type" 272 | ] 273 | }, 274 | { 275 | "trigger": "ssh-ed25519-cert-v01@openssh.com\tkey type", 276 | "contents": "ssh-ed25519-cert-v01@openssh.com", 277 | "annotation": "key type", 278 | "kind": [ 279 | "type", 280 | "k", 281 | "Key type" 282 | ] 283 | }, 284 | { 285 | "trigger": "ssh-ed25519\tkey type", 286 | "contents": "ssh-ed25519", 287 | "annotation": "key type", 288 | "kind": [ 289 | "type", 290 | "k", 291 | "Key type" 292 | ] 293 | }, 294 | { 295 | "trigger": "ssh-ed448\tkey type", 296 | "contents": "ssh-ed448", 297 | "annotation": "key type", 298 | "kind": [ 299 | "type", 300 | "k", 301 | "Key type" 302 | ] 303 | }, 304 | { 305 | "trigger": "ssh-gost-2001\tkey type", 306 | "contents": "ssh-gost-2001", 307 | "annotation": "key type", 308 | "kind": [ 309 | "type", 310 | "k", 311 | "Key type" 312 | ] 313 | }, 314 | { 315 | "trigger": "ssh-gost-2012-256\tkey type", 316 | "contents": "ssh-gost-2012-256", 317 | "annotation": "key type", 318 | "kind": [ 319 | "type", 320 | "k", 321 | "Key type" 322 | ] 323 | }, 324 | { 325 | "trigger": "ssh-gost-2012-512\tkey type", 326 | "contents": "ssh-gost-2012-512", 327 | "annotation": "key type", 328 | "kind": [ 329 | "type", 330 | "k", 331 | "Key type" 332 | ] 333 | }, 334 | { 335 | "trigger": "ssh-rsa-sha256@ssh.com\tkey type", 336 | "contents": "ssh-rsa-sha256@ssh.com", 337 | "annotation": "key type", 338 | "kind": [ 339 | "type", 340 | "k", 341 | "Key type" 342 | ] 343 | }, 344 | { 345 | "trigger": "ssh-rsa-sha2-256\tkey type", 346 | "contents": "ssh-rsa-sha2-256", 347 | "annotation": "key type", 348 | "kind": [ 349 | "type", 350 | "k", 351 | "Key type" 352 | ] 353 | }, 354 | { 355 | "trigger": "ssh-rsa-sha2-512\tkey type", 356 | "contents": "ssh-rsa-sha2-512", 357 | "annotation": "key type", 358 | "kind": [ 359 | "type", 360 | "k", 361 | "Key type" 362 | ] 363 | }, 364 | { 365 | "trigger": "ssh-rsa-sha256@ssh.com\tkey type", 366 | "contents": "ssh-rsa-sha256@ssh.com", 367 | "annotation": "key type", 368 | "kind": [ 369 | "type", 370 | "k", 371 | "Key type" 372 | ] 373 | }, 374 | { 375 | "trigger": "ssh-rsa-sha384@ssh.com\tkey type", 376 | "contents": "ssh-rsa-sha384@ssh.com", 377 | "annotation": "key type", 378 | "kind": [ 379 | "type", 380 | "k", 381 | "Key type" 382 | ] 383 | }, 384 | { 385 | "trigger": "ssh-rsa-sha512@ssh.com\tkey type", 386 | "contents": "ssh-rsa-sha512@ssh.com", 387 | "annotation": "key type", 388 | "kind": [ 389 | "type", 390 | "k", 391 | "Key type" 392 | ] 393 | }, 394 | { 395 | "trigger": "ssh-rsa\tkey type", 396 | "contents": "ssh-rsa", 397 | "annotation": "key type", 398 | "kind": [ 399 | "type", 400 | "k", 401 | "Key type" 402 | ] 403 | }, 404 | { 405 | "trigger": "ssh-xmss-cert-v01@openssh.com\tkey type", 406 | "contents": "ssh-xmss-cert-v01@openssh.com", 407 | "annotation": "key type", 408 | "kind": [ 409 | "type", 410 | "k", 411 | "Key type" 412 | ] 413 | }, 414 | { 415 | "trigger": "ssh-xmss@openssh.com\tkey type", 416 | "contents": "ssh-xmss@openssh.com", 417 | "annotation": "key type", 418 | "kind": [ 419 | "type", 420 | "k", 421 | "Key type" 422 | ] 423 | }, 424 | { 425 | "trigger": "webauthn-sk-ecdsa-sha2-nistp256@openssh.com\tkey type", 426 | "contents": "webauthn-sk-ecdsa-sha2-nistp256@openssh.com", 427 | "annotation": "key type", 428 | "kind": [ 429 | "type", 430 | "k", 431 | "Key type" 432 | ] 433 | }, 434 | { 435 | "trigger": "x509v3-ecdsa-sha2-1.3.132.0.10\tkey type", 436 | "contents": "x509v3-ecdsa-sha2-1.3.132.0.10", 437 | "annotation": "key type", 438 | "kind": [ 439 | "type", 440 | "k", 441 | "Key type" 442 | ] 443 | }, 444 | { 445 | "trigger": "x509v3-ecdsa-sha2-nistp256\tkey type", 446 | "contents": "x509v3-ecdsa-sha2-nistp256", 447 | "annotation": "key type", 448 | "kind": [ 449 | "type", 450 | "k", 451 | "Key type" 452 | ] 453 | }, 454 | { 455 | "trigger": "x509v3-ecdsa-sha2-nistp384\tkey type", 456 | "contents": "x509v3-ecdsa-sha2-nistp384", 457 | "annotation": "key type", 458 | "kind": [ 459 | "type", 460 | "k", 461 | "Key type" 462 | ] 463 | }, 464 | { 465 | "trigger": "x509v3-ecdsa-sha2-nistp521\tkey type", 466 | "contents": "x509v3-ecdsa-sha2-nistp521", 467 | "annotation": "key type", 468 | "kind": [ 469 | "type", 470 | "k", 471 | "Key type" 472 | ] 473 | }, 474 | { 475 | "trigger": "x509v3-rsa2048-sha256\tkey type", 476 | "contents": "x509v3-rsa2048-sha256", 477 | "annotation": "key type", 478 | "kind": [ 479 | "type", 480 | "k", 481 | "Key type" 482 | ] 483 | }, 484 | { 485 | "trigger": "x509v3-sign-rsa-sha256@ssh.com\tkey type", 486 | "contents": "x509v3-sign-rsa-sha256@ssh.com", 487 | "annotation": "key type", 488 | "kind": [ 489 | "type", 490 | "k", 491 | "Key type" 492 | ] 493 | }, 494 | { 495 | "trigger": "x509v3-sign-dss-sha224@ssh.com\tkey type", 496 | "contents": "x509v3-sign-dss-sha224@ssh.com", 497 | "annotation": "key type", 498 | "kind": [ 499 | "type", 500 | "k", 501 | "Key type" 502 | ] 503 | }, 504 | { 505 | "trigger": "x509v3-sign-dss-sha256@ssh.com\tkey type", 506 | "contents": "x509v3-sign-dss-sha256@ssh.com", 507 | "annotation": "key type", 508 | "kind": [ 509 | "type", 510 | "k", 511 | "Key type" 512 | ] 513 | }, 514 | { 515 | "trigger": "x509v3-sign-dss-sha384@ssh.com\tkey type", 516 | "contents": "x509v3-sign-dss-sha384@ssh.com", 517 | "annotation": "key type", 518 | "kind": [ 519 | "type", 520 | "k", 521 | "Key type" 522 | ] 523 | }, 524 | { 525 | "trigger": "x509v3-sign-dss-sha512@ssh.com\tkey type", 526 | "contents": "x509v3-sign-dss-sha512@ssh.com", 527 | "annotation": "key type", 528 | "kind": [ 529 | "type", 530 | "k", 531 | "Key type" 532 | ] 533 | }, 534 | { 535 | "trigger": "x509v3-sign-rsa-sha224@ssh.com\tkey type", 536 | "contents": "x509v3-sign-rsa-sha224@ssh.com", 537 | "annotation": "key type", 538 | "kind": [ 539 | "type", 540 | "k", 541 | "Key type" 542 | ] 543 | }, 544 | { 545 | "trigger": "x509v3-sign-rsa-sha256\tkey type", 546 | "contents": "x509v3-sign-rsa-sha256", 547 | "annotation": "key type", 548 | "kind": [ 549 | "type", 550 | "k", 551 | "Key type" 552 | ] 553 | }, 554 | { 555 | "trigger": "x509v3-sign-rsa-sha256@ssh.com\tkey type", 556 | "contents": "x509v3-sign-rsa-sha256@ssh.com", 557 | "annotation": "key type", 558 | "kind": [ 559 | "type", 560 | "k", 561 | "Key type" 562 | ] 563 | }, 564 | { 565 | "trigger": "x509v3-sign-rsa-sha384@ssh.com\tkey type", 566 | "contents": "x509v3-sign-rsa-sha384@ssh.com", 567 | "annotation": "key type", 568 | "kind": [ 569 | "type", 570 | "k", 571 | "Key type" 572 | ] 573 | }, 574 | { 575 | "trigger": "x509v3-sign-rsa-sha512@ssh.com\tkey type", 576 | "contents": "x509v3-sign-rsa-sha512@ssh.com", 577 | "annotation": "key type", 578 | "kind": [ 579 | "type", 580 | "k", 581 | "Key type" 582 | ] 583 | }, 584 | { 585 | "trigger": "ecdsa-sha2-nistb233\tdeprecated key type", 586 | "contents": "ecdsa-sha2-nistb233", 587 | "annotation": "deprecated key type", 588 | "kind": [ 589 | "type", 590 | "k", 591 | "Key type" 592 | ], 593 | "details": "Deprecated" 594 | }, 595 | { 596 | "trigger": "ecdsa-sha2-nistp224\tdeprecated key type", 597 | "contents": "ecdsa-sha2-nistp224", 598 | "annotation": "deprecated key type", 599 | "kind": [ 600 | "type", 601 | "k", 602 | "Key type" 603 | ], 604 | "details": "Deprecated" 605 | }, 606 | { 607 | "trigger": "ecdsa-sha2-nistp192\tdeprecated key type", 608 | "contents": "ecdsa-sha2-nistp192", 609 | "annotation": "deprecated key type", 610 | "kind": [ 611 | "type", 612 | "k", 613 | "Key type" 614 | ], 615 | "details": "Deprecated" 616 | }, 617 | { 618 | "trigger": "null\tdeprecated key type", 619 | "contents": "null", 620 | "annotation": "deprecated key type", 621 | "kind": [ 622 | "type", 623 | "k", 624 | "Key type" 625 | ], 626 | "details": "Deprecated" 627 | }, 628 | { 629 | "trigger": "pgp-sign-dss\tdeprecated key type", 630 | "contents": "pgp-sign-dss", 631 | "annotation": "deprecated key type", 632 | "kind": [ 633 | "type", 634 | "k", 635 | "Key type" 636 | ], 637 | "details": "Deprecated" 638 | }, 639 | { 640 | "trigger": "pgp-sign-rsa\tdeprecated key type", 641 | "contents": "pgp-sign-rsa", 642 | "annotation": "deprecated key type", 643 | "kind": [ 644 | "type", 645 | "k", 646 | "Key type" 647 | ], 648 | "details": "Deprecated" 649 | }, 650 | { 651 | "trigger": "spki-sign-dss\tdeprecated key type", 652 | "contents": "spki-sign-dss", 653 | "annotation": "deprecated key type", 654 | "kind": [ 655 | "type", 656 | "k", 657 | "Key type" 658 | ], 659 | "details": "Deprecated" 660 | }, 661 | { 662 | "trigger": "spki-sign-rsa\tdeprecated key type", 663 | "contents": "spki-sign-rsa", 664 | "annotation": "deprecated key type", 665 | "kind": [ 666 | "type", 667 | "k", 668 | "Key type" 669 | ], 670 | "details": "Deprecated" 671 | }, 672 | { 673 | "trigger": "ssh-dsa\tdeprecated key type", 674 | "contents": "ssh-dsa", 675 | "annotation": "deprecated key type", 676 | "kind": [ 677 | "type", 678 | "k", 679 | "Key type" 680 | ], 681 | "details": "Deprecated" 682 | }, 683 | { 684 | "trigger": "ssh-dss\tdeprecated key type", 685 | "contents": "ssh-dss", 686 | "annotation": "deprecated key type", 687 | "kind": [ 688 | "type", 689 | "k", 690 | "Key type" 691 | ], 692 | "details": "Deprecated" 693 | }, 694 | { 695 | "trigger": "ssh-dss-cert-v00@openssh.com\tdeprecated key type", 696 | "contents": "ssh-dss-cert-v00@openssh.com", 697 | "annotation": "deprecated key type", 698 | "kind": [ 699 | "type", 700 | "k", 701 | "Key type" 702 | ], 703 | "details": "Deprecated" 704 | }, 705 | { 706 | "trigger": "ssh-dss-cert-v01@openssh.com\tdeprecated key type", 707 | "contents": "ssh-dss-cert-v01@openssh.com", 708 | "annotation": "deprecated key type", 709 | "kind": [ 710 | "type", 711 | "k", 712 | "Key type" 713 | ], 714 | "details": "Deprecated" 715 | }, 716 | { 717 | "trigger": "ssh-dss-sha224@ssh.com\tdeprecated key type", 718 | "contents": "ssh-dss-sha224@ssh.com", 719 | "annotation": "deprecated key type", 720 | "kind": [ 721 | "type", 722 | "k", 723 | "Key type" 724 | ], 725 | "details": "Deprecated" 726 | }, 727 | { 728 | "trigger": "ssh-dss-sha256@ssh.com\tdeprecated key type", 729 | "contents": "ssh-dss-sha256@ssh.com", 730 | "annotation": "deprecated key type", 731 | "kind": [ 732 | "type", 733 | "k", 734 | "Key type" 735 | ], 736 | "details": "Deprecated" 737 | }, 738 | { 739 | "trigger": "ssh-dss-sha384@ssh.com\tdeprecated key type", 740 | "contents": "ssh-dss-sha384@ssh.com", 741 | "annotation": "deprecated key type", 742 | "kind": [ 743 | "type", 744 | "k", 745 | "Key type" 746 | ], 747 | "details": "Deprecated" 748 | }, 749 | { 750 | "trigger": "ssh-dss-sha512@ssh.com\tdeprecated key type", 751 | "contents": "ssh-dss-sha512@ssh.com", 752 | "annotation": "deprecated key type", 753 | "kind": [ 754 | "type", 755 | "k", 756 | "Key type" 757 | ], 758 | "details": "Deprecated" 759 | }, 760 | { 761 | "trigger": "ssh-rsa-cert-v00@openssh.com\tdeprecated key type", 762 | "contents": "ssh-rsa-cert-v00@openssh.com", 763 | "annotation": "deprecated key type", 764 | "kind": [ 765 | "type", 766 | "k", 767 | "Key type" 768 | ], 769 | "details": "Deprecated" 770 | }, 771 | { 772 | "trigger": "ssh-rsa-cert-v01@openssh.com\tdeprecated key type", 773 | "contents": "ssh-rsa-cert-v01@openssh.com", 774 | "annotation": "deprecated key type", 775 | "kind": [ 776 | "type", 777 | "k", 778 | "Key type" 779 | ], 780 | "details": "Deprecated" 781 | }, 782 | { 783 | "trigger": "ssh-rsa1\tdeprecated key type", 784 | "contents": "ssh-rsa1", 785 | "annotation": "deprecated key type", 786 | "kind": [ 787 | "type", 788 | "k", 789 | "Key type" 790 | ], 791 | "details": "Deprecated" 792 | }, 793 | { 794 | "trigger": "x509v3-sign-dss-sha1\tdeprecated key type", 795 | "contents": "x509v3-sign-dss-sha1", 796 | "annotation": "deprecated key type", 797 | "kind": [ 798 | "type", 799 | "k", 800 | "Key type" 801 | ], 802 | "details": "Deprecated" 803 | }, 804 | { 805 | "trigger": "x509v3-sign-dss\tdeprecated key type", 806 | "contents": "x509v3-sign-dss", 807 | "annotation": "deprecated key type", 808 | "kind": [ 809 | "type", 810 | "k", 811 | "Key type" 812 | ], 813 | "details": "Deprecated" 814 | }, 815 | { 816 | "trigger": "x509v3-sign-rsa-sha1\tdeprecated key type", 817 | "contents": "x509v3-sign-rsa-sha1", 818 | "annotation": "deprecated key type", 819 | "kind": [ 820 | "type", 821 | "k", 822 | "Key type" 823 | ], 824 | "details": "Deprecated" 825 | }, 826 | { 827 | "trigger": "x509v3-sign-rsa\tdeprecated key type", 828 | "contents": "x509v3-sign-rsa", 829 | "annotation": "deprecated key type", 830 | "kind": [ 831 | "type", 832 | "k", 833 | "Key type" 834 | ], 835 | "details": "Deprecated" 836 | }, 837 | { 838 | "trigger": "x509v3-ssh-dss\tdeprecated key type", 839 | "contents": "x509v3-ssh-dss", 840 | "annotation": "deprecated key type", 841 | "kind": [ 842 | "type", 843 | "k", 844 | "Key type" 845 | ], 846 | "details": "Deprecated" 847 | }, 848 | { 849 | "trigger": "x509v3-ssh-rsa\tdeprecated key type", 850 | "contents": "x509v3-ssh-rsa", 851 | "annotation": "deprecated key type", 852 | "kind": [ 853 | "type", 854 | "k", 855 | "Key type" 856 | ], 857 | "details": "Deprecated" 858 | } 859 | ] 860 | } -------------------------------------------------------------------------------- /Support/mac-algorithms.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "(source.ssh_config | source.sshd_config) & meta.mapping.value - source source", 3 | "completions": [ 4 | { 5 | "trigger": "AEAD_AES_128_GCM\tmac", 6 | "contents": "AEAD_AES_128_GCM", 7 | "annotation": "mac", 8 | "kind": [ 9 | "function", 10 | "m", 11 | "MAC Algm" 12 | ] 13 | }, 14 | { 15 | "trigger": "AEAD_AES_256_GCM\tmac", 16 | "contents": "AEAD_AES_256_GCM", 17 | "annotation": "mac", 18 | "kind": [ 19 | "function", 20 | "m", 21 | "MAC Algm" 22 | ] 23 | }, 24 | { 25 | "trigger": "aes128-gcm\tmac", 26 | "contents": "aes128-gcm", 27 | "annotation": "mac", 28 | "kind": [ 29 | "function", 30 | "m", 31 | "MAC Algm" 32 | ] 33 | }, 34 | { 35 | "trigger": "aes256-gcm\tmac", 36 | "contents": "aes256-gcm", 37 | "annotation": "mac", 38 | "kind": [ 39 | "function", 40 | "m", 41 | "MAC Algm" 42 | ] 43 | }, 44 | { 45 | "trigger": "cbcmac-aes\tmac", 46 | "contents": "cbcmac-aes", 47 | "annotation": "mac", 48 | "kind": [ 49 | "function", 50 | "m", 51 | "MAC Algm" 52 | ] 53 | }, 54 | { 55 | "trigger": "cbcmac-twofish\tmac", 56 | "contents": "cbcmac-twofish", 57 | "annotation": "mac", 58 | "kind": [ 59 | "function", 60 | "m", 61 | "MAC Algm" 62 | ] 63 | }, 64 | { 65 | "trigger": "chacha20-poly1305@openssh.com\tmac", 66 | "contents": "chacha20-poly1305@openssh.com", 67 | "annotation": "mac", 68 | "kind": [ 69 | "function", 70 | "m", 71 | "MAC Algm" 72 | ] 73 | }, 74 | { 75 | "trigger": "crypticore-mac@ssh.com\tmac", 76 | "contents": "crypticore-mac@ssh.com", 77 | "annotation": "mac", 78 | "kind": [ 79 | "function", 80 | "m", 81 | "MAC Algm" 82 | ] 83 | }, 84 | { 85 | "trigger": "hmac-sha2-224\tmac", 86 | "contents": "hmac-sha2-224", 87 | "annotation": "mac", 88 | "kind": [ 89 | "function", 90 | "m", 91 | "MAC Algm" 92 | ] 93 | }, 94 | { 95 | "trigger": "hmac-sha2-256-96-etm@openssh.com\tmac", 96 | "contents": "hmac-sha2-256-96-etm@openssh.com", 97 | "annotation": "mac", 98 | "kind": [ 99 | "function", 100 | "m", 101 | "MAC Algm" 102 | ] 103 | }, 104 | { 105 | "trigger": "hmac-sha2-256-etm@openssh.com\tmac", 106 | "contents": "hmac-sha2-256-etm@openssh.com", 107 | "annotation": "mac", 108 | "kind": [ 109 | "function", 110 | "m", 111 | "MAC Algm" 112 | ] 113 | }, 114 | { 115 | "trigger": "hmac-sha2-256\tmac", 116 | "contents": "hmac-sha2-256", 117 | "annotation": "mac", 118 | "kind": [ 119 | "function", 120 | "m", 121 | "MAC Algm" 122 | ] 123 | }, 124 | { 125 | "trigger": "hmac-sha2-384\tmac", 126 | "contents": "hmac-sha2-384", 127 | "annotation": "mac", 128 | "kind": [ 129 | "function", 130 | "m", 131 | "MAC Algm" 132 | ] 133 | }, 134 | { 135 | "trigger": "hmac-sha2-512-96-etm@openssh.com\tmac", 136 | "contents": "hmac-sha2-512-96-etm@openssh.com", 137 | "annotation": "mac", 138 | "kind": [ 139 | "function", 140 | "m", 141 | "MAC Algm" 142 | ] 143 | }, 144 | { 145 | "trigger": "hmac-sha2-512-etm@openssh.com\tmac", 146 | "contents": "hmac-sha2-512-etm@openssh.com", 147 | "annotation": "mac", 148 | "kind": [ 149 | "function", 150 | "m", 151 | "MAC Algm" 152 | ] 153 | }, 154 | { 155 | "trigger": "hmac-sha2-512\tmac", 156 | "contents": "hmac-sha2-512", 157 | "annotation": "mac", 158 | "kind": [ 159 | "function", 160 | "m", 161 | "MAC Algm" 162 | ] 163 | }, 164 | { 165 | "trigger": "hmac-sha2-56\tmac", 166 | "contents": "hmac-sha2-56", 167 | "annotation": "mac", 168 | "kind": [ 169 | "function", 170 | "m", 171 | "MAC Algm" 172 | ] 173 | }, 174 | { 175 | "trigger": "hmac-sha256-96@ssh.com\tmac", 176 | "contents": "hmac-sha256-96@ssh.com", 177 | "annotation": "mac", 178 | "kind": [ 179 | "function", 180 | "m", 181 | "MAC Algm" 182 | ] 183 | }, 184 | { 185 | "trigger": "hmac-sha256@ssh.com\tmac", 186 | "contents": "hmac-sha256@ssh.com", 187 | "annotation": "mac", 188 | "kind": [ 189 | "function", 190 | "m", 191 | "MAC Algm" 192 | ] 193 | }, 194 | { 195 | "trigger": "hmac-sha256\tmac", 196 | "contents": "hmac-sha256", 197 | "annotation": "mac", 198 | "kind": [ 199 | "function", 200 | "m", 201 | "MAC Algm" 202 | ] 203 | }, 204 | { 205 | "trigger": "hmac-sha3-224\tmac", 206 | "contents": "hmac-sha3-224", 207 | "annotation": "mac", 208 | "kind": [ 209 | "function", 210 | "m", 211 | "MAC Algm" 212 | ] 213 | }, 214 | { 215 | "trigger": "hmac-sha3-256\tmac", 216 | "contents": "hmac-sha3-256", 217 | "annotation": "mac", 218 | "kind": [ 219 | "function", 220 | "m", 221 | "MAC Algm" 222 | ] 223 | }, 224 | { 225 | "trigger": "hmac-sha3-384\tmac", 226 | "contents": "hmac-sha3-384", 227 | "annotation": "mac", 228 | "kind": [ 229 | "function", 230 | "m", 231 | "MAC Algm" 232 | ] 233 | }, 234 | { 235 | "trigger": "hmac-sha3-512\tmac", 236 | "contents": "hmac-sha3-512", 237 | "annotation": "mac", 238 | "kind": [ 239 | "function", 240 | "m", 241 | "MAC Algm" 242 | ] 243 | }, 244 | { 245 | "trigger": "hmac-sha512@ssh.com\tmac", 246 | "contents": "hmac-sha512@ssh.com", 247 | "annotation": "mac", 248 | "kind": [ 249 | "function", 250 | "m", 251 | "MAC Algm" 252 | ] 253 | }, 254 | { 255 | "trigger": "hmac-sha512\tmac", 256 | "contents": "hmac-sha512", 257 | "annotation": "mac", 258 | "kind": [ 259 | "function", 260 | "m", 261 | "MAC Algm" 262 | ] 263 | }, 264 | { 265 | "trigger": "umac-128-etm@openssh.com\tmac", 266 | "contents": "umac-128-etm@openssh.com", 267 | "annotation": "mac", 268 | "kind": [ 269 | "function", 270 | "m", 271 | "MAC Algm" 272 | ] 273 | }, 274 | { 275 | "trigger": "umac-128@openssh.com\tmac", 276 | "contents": "umac-128@openssh.com", 277 | "annotation": "mac", 278 | "kind": [ 279 | "function", 280 | "m", 281 | "MAC Algm" 282 | ] 283 | }, 284 | { 285 | "trigger": "umac-128\tmac", 286 | "contents": "umac-128", 287 | "annotation": "mac", 288 | "kind": [ 289 | "function", 290 | "m", 291 | "MAC Algm" 292 | ] 293 | }, 294 | { 295 | "trigger": "umac-32@openssh.com\tmac", 296 | "contents": "umac-32@openssh.com", 297 | "annotation": "mac", 298 | "kind": [ 299 | "function", 300 | "m", 301 | "MAC Algm" 302 | ] 303 | }, 304 | { 305 | "trigger": "umac-64-etm@openssh.com\tmac", 306 | "contents": "umac-64-etm@openssh.com", 307 | "annotation": "mac", 308 | "kind": [ 309 | "function", 310 | "m", 311 | "MAC Algm" 312 | ] 313 | }, 314 | { 315 | "trigger": "umac-64@openssh.com\tmac", 316 | "contents": "umac-64@openssh.com", 317 | "annotation": "mac", 318 | "kind": [ 319 | "function", 320 | "m", 321 | "MAC Algm" 322 | ] 323 | }, 324 | { 325 | "trigger": "umac-96@openssh.com\tmac", 326 | "contents": "umac-96@openssh.com", 327 | "annotation": "mac", 328 | "kind": [ 329 | "function", 330 | "m", 331 | "MAC Algm" 332 | ] 333 | }, 334 | { 335 | "trigger": "cbcmac-3des\tdeprecated mac", 336 | "contents": "cbcmac-3des", 337 | "annotation": "deprecated mac", 338 | "kind": [ 339 | "function", 340 | "m", 341 | "MAC Algm" 342 | ], 343 | "details": "Deprecated" 344 | }, 345 | { 346 | "trigger": "cbcmac-blowfish\tdeprecated mac", 347 | "contents": "cbcmac-blowfish", 348 | "annotation": "deprecated mac", 349 | "kind": [ 350 | "function", 351 | "m", 352 | "MAC Algm" 353 | ], 354 | "details": "Deprecated" 355 | }, 356 | { 357 | "trigger": "cbcmac-des\tdeprecated mac", 358 | "contents": "cbcmac-des", 359 | "annotation": "deprecated mac", 360 | "kind": [ 361 | "function", 362 | "m", 363 | "MAC Algm" 364 | ], 365 | "details": "Deprecated" 366 | }, 367 | { 368 | "trigger": "cbcmac-rijndael\tdeprecated mac", 369 | "contents": "cbcmac-rijndael", 370 | "annotation": "deprecated mac", 371 | "kind": [ 372 | "function", 373 | "m", 374 | "MAC Algm" 375 | ], 376 | "details": "Deprecated" 377 | }, 378 | { 379 | "trigger": "hmac-md5-96\tdeprecated mac", 380 | "contents": "hmac-md5-96", 381 | "annotation": "deprecated mac", 382 | "kind": [ 383 | "function", 384 | "m", 385 | "MAC Algm" 386 | ], 387 | "details": "Deprecated" 388 | }, 389 | { 390 | "trigger": "hmac-md5-96-etm@openssh.com\tdeprecated mac", 391 | "contents": "hmac-md5-96-etm@openssh.com", 392 | "annotation": "deprecated mac", 393 | "kind": [ 394 | "function", 395 | "m", 396 | "MAC Algm" 397 | ], 398 | "details": "Deprecated" 399 | }, 400 | { 401 | "trigger": "hmac-md5-etm@openssh.com\tdeprecated mac", 402 | "contents": "hmac-md5-etm@openssh.com", 403 | "annotation": "deprecated mac", 404 | "kind": [ 405 | "function", 406 | "m", 407 | "MAC Algm" 408 | ], 409 | "details": "Deprecated" 410 | }, 411 | { 412 | "trigger": "hmac-md5\tdeprecated mac", 413 | "contents": "hmac-md5", 414 | "annotation": "deprecated mac", 415 | "kind": [ 416 | "function", 417 | "m", 418 | "MAC Algm" 419 | ], 420 | "details": "Deprecated" 421 | }, 422 | { 423 | "trigger": "hmac-ripemd160-etm@openssh.com\tdeprecated mac", 424 | "contents": "hmac-ripemd160-etm@openssh.com", 425 | "annotation": "deprecated mac", 426 | "kind": [ 427 | "function", 428 | "m", 429 | "MAC Algm" 430 | ], 431 | "details": "Deprecated" 432 | }, 433 | { 434 | "trigger": "hmac-ripemd160@openssh.com\tdeprecated mac", 435 | "contents": "hmac-ripemd160@openssh.com", 436 | "annotation": "deprecated mac", 437 | "kind": [ 438 | "function", 439 | "m", 440 | "MAC Algm" 441 | ], 442 | "details": "Deprecated" 443 | }, 444 | { 445 | "trigger": "hmac-ripemd160-96\tdeprecated mac", 446 | "contents": "hmac-ripemd160-96", 447 | "annotation": "deprecated mac", 448 | "kind": [ 449 | "function", 450 | "m", 451 | "MAC Algm" 452 | ], 453 | "details": "Deprecated" 454 | }, 455 | { 456 | "trigger": "hmac-ripemd160\tdeprecated mac", 457 | "contents": "hmac-ripemd160", 458 | "annotation": "deprecated mac", 459 | "kind": [ 460 | "function", 461 | "m", 462 | "MAC Algm" 463 | ], 464 | "details": "Deprecated" 465 | }, 466 | { 467 | "trigger": "hmac-ripemd\tdeprecated mac", 468 | "contents": "hmac-ripemd", 469 | "annotation": "deprecated mac", 470 | "kind": [ 471 | "function", 472 | "m", 473 | "MAC Algm" 474 | ], 475 | "details": "Deprecated" 476 | }, 477 | { 478 | "trigger": "hmac-sha1-96-etm@openssh.com\tdeprecated mac", 479 | "contents": "hmac-sha1-96-etm@openssh.com", 480 | "annotation": "deprecated mac", 481 | "kind": [ 482 | "function", 483 | "m", 484 | "MAC Algm" 485 | ], 486 | "details": "Deprecated" 487 | }, 488 | { 489 | "trigger": "hmac-sha1-96\tdeprecated mac", 490 | "contents": "hmac-sha1-96", 491 | "annotation": "deprecated mac", 492 | "kind": [ 493 | "function", 494 | "m", 495 | "MAC Algm" 496 | ], 497 | "details": "Deprecated" 498 | }, 499 | { 500 | "trigger": "hmac-sha1-etm@openssh.com\tdeprecated mac", 501 | "contents": "hmac-sha1-etm@openssh.com", 502 | "annotation": "deprecated mac", 503 | "kind": [ 504 | "function", 505 | "m", 506 | "MAC Algm" 507 | ], 508 | "details": "Deprecated" 509 | }, 510 | { 511 | "trigger": "hmac-sha1\tdeprecated mac", 512 | "contents": "hmac-sha1", 513 | "annotation": "deprecated mac", 514 | "kind": [ 515 | "function", 516 | "m", 517 | "MAC Algm" 518 | ], 519 | "details": "Deprecated" 520 | }, 521 | { 522 | "trigger": "hmac-sha2-256-96\tdeprecated mac", 523 | "contents": "hmac-sha2-256-96", 524 | "annotation": "deprecated mac", 525 | "kind": [ 526 | "function", 527 | "m", 528 | "MAC Algm" 529 | ], 530 | "details": "Deprecated" 531 | }, 532 | { 533 | "trigger": "hmac-sha2-512-96\tdeprecated mac", 534 | "contents": "hmac-sha2-512-96", 535 | "annotation": "deprecated mac", 536 | "kind": [ 537 | "function", 538 | "m", 539 | "MAC Algm" 540 | ], 541 | "details": "Deprecated" 542 | }, 543 | { 544 | "trigger": "none\tdeprecated mac", 545 | "contents": "none", 546 | "annotation": "deprecated mac", 547 | "kind": [ 548 | "function", 549 | "m", 550 | "MAC Algm" 551 | ], 552 | "details": "Deprecated" 553 | }, 554 | { 555 | "trigger": "md5-8\tdeprecated mac", 556 | "contents": "md5-8", 557 | "annotation": "deprecated mac", 558 | "kind": [ 559 | "function", 560 | "m", 561 | "MAC Algm" 562 | ], 563 | "details": "Deprecated" 564 | }, 565 | { 566 | "trigger": "md5\tdeprecated mac", 567 | "contents": "md5", 568 | "annotation": "deprecated mac", 569 | "kind": [ 570 | "function", 571 | "m", 572 | "MAC Algm" 573 | ], 574 | "details": "Deprecated" 575 | }, 576 | { 577 | "trigger": "ripemd160-8\tdeprecated mac", 578 | "contents": "ripemd160-8", 579 | "annotation": "deprecated mac", 580 | "kind": [ 581 | "function", 582 | "m", 583 | "MAC Algm" 584 | ], 585 | "details": "Deprecated" 586 | }, 587 | { 588 | "trigger": "ripemd160\tdeprecated mac", 589 | "contents": "ripemd160", 590 | "annotation": "deprecated mac", 591 | "kind": [ 592 | "function", 593 | "m", 594 | "MAC Algm" 595 | ], 596 | "details": "Deprecated" 597 | }, 598 | { 599 | "trigger": "sha1-8\tdeprecated mac", 600 | "contents": "sha1-8", 601 | "annotation": "deprecated mac", 602 | "kind": [ 603 | "function", 604 | "m", 605 | "MAC Algm" 606 | ], 607 | "details": "Deprecated" 608 | }, 609 | { 610 | "trigger": "sha1\tdeprecated mac", 611 | "contents": "sha1", 612 | "annotation": "deprecated mac", 613 | "kind": [ 614 | "function", 615 | "m", 616 | "MAC Algm" 617 | ], 618 | "details": "Deprecated" 619 | } 620 | ] 621 | } -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import sublime 2 | import sublime_plugin 3 | from os.path import expandvars 4 | 5 | 6 | def get_file_location(identifier): 7 | settings = sublime.load_settings('SSH Config.sublime-settings') 8 | user_setting = settings.get('file_locations') 9 | if user_setting: 10 | if identifier in user_setting: 11 | return expandvars(user_setting[identifier]) 12 | else: 13 | print('Could not find {} key in "file_locations"' 14 | ''.format(identifier)) 15 | return expandvars(settings.get( 16 | 'default_file_locations')[sublime.platform()][identifier]) 17 | 18 | 19 | def open_new_view(instance, identifier): 20 | window = instance.view.window() 21 | if not window: 22 | print('Missing window for view') 23 | return 24 | view = window.open_file(get_file_location(identifier)) 25 | return view 26 | 27 | 28 | class OpenSshConfigFileCommand(sublime_plugin.TextCommand): 29 | def run(self, edit): 30 | view = open_new_view(self, 'ssh_config') 31 | if not view: 32 | return 33 | 34 | if sublime.load_settings('SSH Config.sublime-settings').get( 35 | 'force_ssh_config_syntax'): 36 | syntax = 'Packages/SSH Config/SSH Config.sublime-syntax' 37 | view.settings().set('syntax', syntax) 38 | 39 | 40 | class OpenSshdConfigFileCommand(sublime_plugin.TextCommand): 41 | def run(self, edit): 42 | view = open_new_view(self, 'sshd_config') 43 | 44 | 45 | class OpenKnownHostsFileCommand(sublime_plugin.TextCommand): 46 | def run(self, edit): 47 | view = open_new_view(self, 'known_hosts') 48 | 49 | 50 | class OpenAuthorizedKeysFileCommand(sublime_plugin.TextCommand): 51 | def run(self, edit): 52 | view = open_new_view(self, 'authorized_keys') 53 | -------------------------------------------------------------------------------- /messages/2.0.0.md: -------------------------------------------------------------------------------- 1 | v2.0.0 (2018-09-20) 2 | =================== 3 | 4 | **Support is _dropped_ for Sublime Text 2.** 5 | ST2 users can continue using the package as it existed in 2015. 6 | 7 | - Separate SSH / SSHD file syntax and completions 8 | - Additional highlighting 9 | - Go-to-Symbol support (`Cmd`+`R` or `Ctrl`+`R`) 10 | - Commands to open `~/.ssh/config` and `/etc/ssh/sshd_config` 11 | -------------------------------------------------------------------------------- /messages/2.1.0.md: -------------------------------------------------------------------------------- 1 | v2.1.0 (2019-03-26) 2 | =================== 3 | 4 | - Support for the `Match` entries in SSH Config 5 | - More accurate tokens in `ProxyCommand` and `LocalCommand` 6 | -------------------------------------------------------------------------------- /messages/2.2.0.md: -------------------------------------------------------------------------------- 1 | v2.2.0 (2019-03-29) 2 | =================== 3 | 4 | If you were missing autocomplete as you type, add a syntax-specific setting with this content (or add this key): 5 | 6 | ``` json 7 | { 8 | "auto_complete_selector": "text.ssh_config, text.sshd_config" 9 | } 10 | ``` 11 | 12 | ## SSH Config 13 | 14 | - Meta scopes for blocks (`Host` and `Match`), conditionals, and options 15 | - Support for `=` in option assignment 16 | - Mild support for double-quoted option values 17 | - Boolean-only options now complain about non-boolean values 18 | - Highlight wildcards and commas in generic values 19 | -------------------------------------------------------------------------------- /messages/2.3.0.md: -------------------------------------------------------------------------------- 1 | v2.3.0 (2019-04-08) 2 | =================== 3 | 4 | ## SSH Config 5 | 6 | - Fix regression for non-boolean options that started the same as a boolean-only option. 7 | - Support `!` (logical negation) in `Match` blocks and some other places. 8 | 9 | ## SSHD Config 10 | 11 | - Support for `Match` conditionals 12 | - Support for `ForceCommand` 13 | -------------------------------------------------------------------------------- /messages/3.0.0.md: -------------------------------------------------------------------------------- 1 | v3.0.0 (2019-09-19) 2 | =================== 3 | 4 | Breaking change for anyone who followed instructions for autocomplete. I've been convinced that `source.*` is the right base scope for these files. Remove the `auto_complete_selector` line from syntax-specific settings or modify it to your expectations. 5 | 6 | ## SSH Config 7 | 8 | - Comma-separated `Host`s in `Match` expressions 9 | - Ensure highlighting and completions for `All` and `Final` in `Match` expressions. 10 | -------------------------------------------------------------------------------- /messages/3.6.0.md: -------------------------------------------------------------------------------- 1 | v3.6.0 (2020-05-12) 2 | =================== 3 | 4 | It's been a little while since the last update message. New since 3.0.0: 5 | 6 | - Varying levels of support for `known_hosts`, `authorized_keys`, and 7 | public/private key files 8 | 9 | - More completions, including 10 | + `Match` block snippets 11 | + Suggested values for many SSH options 12 | + (More improvements forthcoming) 13 | 14 | - Configurable file locations in case your config files are stored in 15 | novel places 16 | 17 | - Pedantic IPv4/IPv6 validation. 18 | + Helps avoid not-really-IPs like `189.23.290.13` 19 | + These are also added to https://packagecontrol.io/packages/Hosts for 20 | `/etc/hosts` with examples of matching and non-matching IP-like strings. 21 | 22 | - Highlighting of some crypto builtins 23 | 24 | - Local symbol list for SSHD Config now also matches commented-out items, 25 | since it seems to be standard practice to toggle them. You don't need 26 | to make a _new_ `MaxAuthTries` somewhere else in the file when there's 27 | already a commented-out one in there. 28 | 29 | - Minor performance improvements 30 | -------------------------------------------------------------------------------- /messages/4.0.0.md: -------------------------------------------------------------------------------- 1 | v4.0.0 (2020-05-15) 2 | =================== 3 | 4 | - More snippets and completions now work at EOL. 5 | - Most completion help text has been removed, except for people on 6 | pre-releases, who see it in the new place. 7 | - Highlighting has been added for time and bytes values. 8 | - Minor bugfixes 9 | 10 | Most completion code and everything relating to crypto builtins has been 11 | reorganized for maintainability. 12 | -------------------------------------------------------------------------------- /messages/4.1.0.md: -------------------------------------------------------------------------------- 1 | v4.1.0 (2020-10-09) 2 | =================== 3 | 4 | - The "Open SSH Config" command now sets highlighting, since `config` is not 5 | listed in the file extensions (owing to conflicts with e.g. `.git/config`) 6 | - New crypto items. 7 | - Fix MACs in SSHD Config. 8 | - Slightly slimmer package size. 9 | + If this release breaks the package for you, file a bug. There's a small 10 | chance that could happen. 11 | -------------------------------------------------------------------------------- /messages/4.1.1.md: -------------------------------------------------------------------------------- 1 | v4.1.1 (2020-11-18) 2 | =================== 3 | 4 | For Windows users, this fixes the failure to expand `%USERPROFILE%`, etc. 5 | in your settings when the "Open SSH Config File" etc. are invoked. 6 | 7 | Sorry about that. If you've been using overrides, you may be able to 8 | get by without them now. 9 | -------------------------------------------------------------------------------- /messages/5.0.0.md: -------------------------------------------------------------------------------- 1 | v5.0.0 (2025-02-09) 2 | =================== 3 | 4 | - Fix shell context sanity limit 5 | - Sync to new crypto versions 6 | - More formats for private keys 7 | - New SSH and SSHD parameters 8 | - Indentation rules 9 | - Better handling for quoted values 10 | 11 | This package now requires the `extends` keyword to be supported by your 12 | syntax rendering engine. Sorry to the Syntect projects. 13 | -------------------------------------------------------------------------------- /messages/6.0.0.md: -------------------------------------------------------------------------------- 1 | v6.0.0 (2025-04-14) 2 | =================== 3 | 4 | Update for SSH v10.0 5 | 6 | - Add `mlkem768x25519-sha256`, the new default kex. 7 | - Add new `Match` features for SSH and SSHD configs. 8 | - Fix not escaping on some existing `Match` parameters. 9 | - Wire up the the commands for opening Authorized Keys and Known Hosts. 10 | -------------------------------------------------------------------------------- /messaging.json: -------------------------------------------------------------------------------- 1 | { 2 | "6.0.0": "messages/6.0.0.md", 3 | "5.0.0": "messages/5.0.0.md", 4 | "4.1.1": "messages/4.1.1.md", 5 | "4.1.0": "messages/4.1.0.md", 6 | "4.0.0": "messages/4.0.0.md", 7 | "3.6.0": "messages/3.6.0.md", 8 | "3.0.0": "messages/3.0.0.md", 9 | "2.3.0": "messages/2.3.0.md", 10 | "2.2.0": "messages/2.2.0.md", 11 | "2.1.0": "messages/2.1.0.md", 12 | "2.0.0": "messages/2.0.0.md" 13 | } 14 | --------------------------------------------------------------------------------