runtime/syntax/squirrel.vim @zenmatic
runtime/syntax/srt.vim @ObserverOfTime
runtime/syntax/ssa.vim @ObserverOfTime
+runtime/syntax/sshallowedsigners.vim @fionn
+runtime/syntax/sshauthorizedkeys.vim @fionn
runtime/syntax/sshconfig.vim @Jakuje
runtime/syntax/sshdconfig.vim @Jakuje
+runtime/syntax/sshpublickey.vim @fionn
+runtime/syntax/sshknownhosts.vim @fionn
runtime/syntax/sudoers.vim @e-kwsm
runtime/syntax/svn.vim @hdima
runtime/syntax/swayconfig.vim @jamespeapen
" OpenSSH server configuration
au BufNewFile,BufRead */etc/ssh/sshd_config.d/*.conf setf sshdconfig
+" OpenSSH public keys, authorized keys, signing keys, host keys
+au BufNewFile,BufRead */.ssh/?*.pub,/etc/ssh/?*.pub setf sshpublickey
+au BufNewFile,BufRead */.ssh/authorized_keys setf sshauthorizedkeys
+au BufNewFile,BufRead */.ssh/known_hosts,/etc/ssh/ssh_known_hosts setf sshknownhosts
+au BufNewFile,BufRead allowed_signers,*.allowed_signers setf sshallowedsigners
+
" OpenVPN configuration
au BufNewFile,BufRead */openvpn/*/*.conf setf openvpn
--- /dev/null
+" Vim syntax file
+" Language: OpenSSH allowed signers file
+" Author: Fionn Fitzmaurice (github.com/fionn)
+" Maintainer: Fionn Fitzmaurice (github.com/fionn)
+" License: Vim & Apache 2.0
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn match sshAllowedSignersPrincipal "!\?[a-zA-Z0-9.*?_+-]\+@[a-zA-Z0-9.*?-]\+" nextgroup=sshAllowedSignersPrincipalSeparator,sshAllowedSignersOptions,sshKeyType skipwhite
+syn match sshAllowedSignersPrincipalSeparator "," contained nextgroup=sshAllowedSignersPrincipal
+
+syn region sshAllowedSignersOptions start="[a-z]" end="\s\@=" contains=@sshAllowedSignersOption nextgroup=sshKeyType skipwhite oneline contained
+syn cluster sshAllowedSignersOption contains=sshAllowedSignersOptionKeyword,sshAllowedSignersOptionSeparator,sshAllowedSignersOptionAssignment,sshAllowedSignersOptionValue
+syn keyword sshAllowedSignersOptionKeyword namespaces cert-authority valid-after valid-before contained
+syn match sshAllowedSignersOptionSeparator "," contained
+syn match sshAllowedSignersOptionAssignment "=" contained
+syn match sshAllowedSignersOptionValue '"\(\\\"\|[^"]\)*"' contained
+
+runtime! syntax/sshpublickey.vim
+
+hi def link sshAllowedSignersPrincipal Identifier
+hi def link sshAllowedSignersPrincipalSeparator Punctuation
+
+hi def link sshAllowedSignersOptionKeyword Keyword
+hi def link sshAllowedSignersOptionSeparator Punctuation
+hi def link sshAllowedSignersOptionAssignment Operator
+hi def link sshAllowedSignersOptionValue String
+
+let b:current_syntax = "sshallowedsigners"
--- /dev/null
+" Vim syntax file
+" Language: OpenSSH authorized keys file
+" Author: Fionn Fitzmaurice (github.com/fionn)
+" Maintainer: Fionn Fitzmaurice (github.com/fionn)
+" License: Vim & Apache 2.0
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn region sshAuthorizedKeyOptions start="^[a-z]" end="\s" contains=@sshAuthorizedKeyOption nextgroup=sshKeyType skipwhite oneline
+syn cluster sshAuthorizedKeyOption contains=sshAuthorizedKeyOptionKeyword,sshAuthorizedKeyOptionSeparator,sshAuthorizedKeyOptionAssignment,sshAuthorizedKeyOptionValue
+syn match sshAuthorizedKeyOptionKeyword "[a-z-]\+" contained
+syn match sshAuthorizedKeyOptionSeparator "," contained
+syn match sshAuthorizedKeyOptionAssignment "=" contained
+syn match sshAuthorizedKeyOptionValue '"\(\\\"\|[^"]\)*"' contained
+
+runtime! syntax/sshpublickey.vim
+
+hi def link sshAuthorizedKeyOptionKeyword Keyword
+hi def link sshAuthorizedKeyOptionSeparator Punctuation
+hi def link sshAuthorizedKeyOptionAssignment Operator
+hi def link sshAuthorizedKeyOptionValue String
+
+let b:current_syntax = "sshauthorizedkeys"
--- /dev/null
+" Vim syntax file
+" Language: OpenSSH known hosts file
+" Author: Fionn Fitzmaurice (github.com/fionn)
+" Maintainer: Fionn Fitzmaurice (github.com/fionn)
+" License: Vim & Apache 2.0
+
+if exists("b:current_syntax")
+ finish
+endif
+
+runtime! syntax/sshpublickey.vim
+
+syn match sshKnownHostsMarker "^@cert-authority\>" nextgroup=sshKnownHostsHostname,sshKnownHostsHashedHostname skipwhite
+syn match sshKnownHostsMarker "^@revoked\>" nextgroup=sshKnownHostsHostname,sshKnownHostsHashedHostname skipwhite
+
+syn match sshKnownHostsHostname "!\?[a-zA-Z0-9.*-]\+" nextgroup=sshKnownHostsHostnameSeparator,sshKeyType skipwhite
+syn match sshKnownHostsHostname "!\?\[[a-zA-Z0-9.*-]\+\]:[0-9]\{1,5}" nextgroup=sshKnownHostsHostnameSeparator,sshKeyType skipwhite
+syn match sshKnownHostsHostnameSeparator "," contained nextgroup=sshKnownHostsHostname
+
+syn match sshKnownHostsHashedHostname "|1|[a-zA-Z0-9/+]\+=\{,2}|[a-zA-Z0-9/+]\+=\{,2}" nextgroup=sshKeyType skipwhite
+
+hi def link sshKnownHostsMarker Statement
+hi def link sshKnownHostsHostname Identifier
+hi def link sshKnownHostsHostnameSeparator Punctuation
+hi def link sshKnownHostsHashedHostname Identifier
+
+let b:current_syntax = "sshknownhosts"
--- /dev/null
+" Vim syntax file
+" Language: OpenSSH public key
+" Author: Fionn Fitzmaurice (github.com/fionn)
+" Maintainer: Fionn Fitzmaurice (github.com/fionn)
+" License: Vim & Apache 2.0
+
+if exists("b:current_syntax")
+ finish
+endif
+
+setlocal iskeyword=_,.,@-@,-,a-z,A-Z,48-57
+
+syn keyword sshKeyType ssh-ed25519 nextgroup=sshKeyBase64Encoded skipwhite
+syn keyword sshKeyType sk-ssh-ed25519@openssh.com nextgroup=sshKeyBase64Encoded skipwhite
+syn keyword sshKeyType ecdsa-sha2-nistp256 nextgroup=sshKeyBase64Encoded skipwhite
+syn keyword sshKeyType ecdsa-sha2-nistp384 nextgroup=sshKeyBase64Encoded skipwhite
+syn keyword sshKeyType ecdsa-sha2-nistp521 nextgroup=sshKeyBase64Encoded skipwhite
+syn keyword sshKeyType sk-ecdsa-sha2-nistp256@openssh.com nextgroup=sshKeyBase64Encoded skipwhite
+syn keyword sshKeyType ssh-rsa nextgroup=sshKeyBase64Encoded skipwhite
+
+syn match sshKeyBase64Encoded "AAAA[a-zA-Z0-9/+]\{64,8000}=\{,2}" contained nextgroup=sshKeyComment
+syn match sshKeyComment ".*$" contained
+
+syn match sshKeyComment "#.*$"
+
+hi def link sshKeyType Type
+hi def link sshKeyBase64Encoded String
+hi def link sshKeyComment Comment
+
+let b:current_syntax = "sshpublickey"
srec: ['file.s19', 'file.s28', 'file.s37', 'file.mot', 'file.srec'],
srt: ['file.srt'],
ssa: ['file.ass', 'file.ssa'],
+ sshallowedsigners: ['any/allowed_signers', 'any/.allowed_signers', 'any/file.allowed_signers'],
+ sshauthorizedkeys: ['any/.ssh/authorized_keys'],
sshconfig: ['ssh_config', '/.ssh/config', '/etc/ssh/ssh_config.d/file.conf', 'any/etc/ssh/ssh_config.d/file.conf', 'any/.ssh/config', 'any/.ssh/file.conf'],
sshdconfig: ['sshd_config', '/etc/ssh/sshd_config.d/file.conf', 'any/etc/ssh/sshd_config.d/file.conf'],
+ sshpublickey: ['any/.ssh/file.pub', '/etc/ssh/file.pub'],
+ sshknownhosts: ['any/.ssh/known_hosts', '/etc/ssh/ssh_known_hosts'],
st: ['file.st'],
starlark: ['file.ipd', 'file.sky', 'file.star', 'file.starlark'],
stata: ['file.ado', 'file.do', 'file.imata', 'file.mata'],
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 742,
/**/
741,
/**/