xref: /vim-8.2.3635/runtime/syntax/sshconfig.vim (revision cb03397a)
1" Vim syntax file
2" Language:	OpenSSH client configuration file (ssh_config)
3" Author:	David Necas (Yeti)
4" Maintainer:	Dominik Fischer <d dot f dot fischer at web dot de>
5" Contributor:  Leonard Ehrenfried <[email protected]>
6" Contributor:  Karsten Hopp <[email protected]>
7" Contributor:  Dean, Adam Kenneth <[email protected]>
8" Last Change:	2016 Aug 11
9" SSH Version:	7.3p1
10"
11
12" Setup
13if version >= 600
14  if exists("b:current_syntax")
15    finish
16  endif
17else
18  syntax clear
19endif
20
21if version >= 600
22  setlocal iskeyword=_,-,a-z,A-Z,48-57
23else
24  set iskeyword=_,-,a-z,A-Z,48-57
25endif
26
27
28" case on
29syn case match
30
31
32" Comments
33syn match sshconfigComment "^#.*$" contains=sshconfigTodo
34syn match sshconfigComment "\s#.*$" contains=sshconfigTodo
35
36syn keyword sshconfigTodo TODO FIXME NOTE contained
37
38
39" Constants
40syn keyword sshconfigYesNo yes no ask confirm
41syn keyword sshconfigYesNo any auto
42syn keyword sshconfigYesNo force autoask none
43
44syn keyword sshconfigCipher 3des blowfish
45
46syn keyword sshconfigCiphers 3des-cbc
47syn keyword sshconfigCiphers blowfish-cbc
48syn keyword sshconfigCiphers cast128-cbc
49syn keyword sshconfigCiphers arcfour
50syn keyword sshconfigCiphers arcfour128
51syn keyword sshconfigCiphers arcfour256
52syn keyword sshconfigCiphers aes128-cbc
53syn keyword sshconfigCiphers aes192-cbc
54syn keyword sshconfigCiphers aes256-cbc
55syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
56syn keyword sshconfigCiphers aes128-ctr
57syn keyword sshconfigCiphers aes192-ctr
58syn keyword sshconfigCiphers aes256-ctr
59syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
60syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
61syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
62
63syn keyword sshconfigMAC hmac-sha1
64syn keyword sshconfigMAC mac-sha1-96
65syn keyword sshconfigMAC mac-sha2-256
66syn keyword sshconfigMAC mac-sha2-512
67syn keyword sshconfigMAC mac-md5
68syn keyword sshconfigMAC mac-md5-96
69syn keyword sshconfigMAC mac-ripemd160
70syn match   sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
71syn match   sshconfigMAC "\<umac-64@openssh\.com\>"
72syn match   sshconfigMAC "\<umac-128@openssh\.com\>"
73syn match   sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
74syn match   sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
75syn match   sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
76syn match   sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
77syn match   sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
78syn match   sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
79syn match   sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
80syn match   sshconfigMAC "\<umac-64-etm@openssh\.com\>"
81syn match   sshconfigMAC "\<umac-128-etm@openssh\.com\>"
82
83syn keyword sshconfigHostKeyAlgo ssh-ed25519
84syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
85syn keyword sshconfigHostKeyAlgo ssh-rsa
86syn keyword sshconfigHostKeyAlgo ssh-dss
87syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
88syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
89syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
90syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
91syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
92syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
93syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
94syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
95
96syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
97syn keyword sshconfigPreferredAuth keyboard-interactive
98
99syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
100syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
101syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
102syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
103syn keyword sshconfigAddressFamily  inet inet6
104
105syn match   sshconfigIPQoS	"af1[123]"
106syn match   sshconfigIPQoS	"af2[123]"
107syn match   sshconfigIPQoS	"af3[123]"
108syn match   sshconfigIPQoS	"af4[123]"
109syn match   sshconfigIPQoS	"cs[0-7]"
110syn keyword sshconfigIPQoS	ef lowdelay throughput reliability
111syn keyword sshconfigKbdInteractive bsdauth pam skey
112
113syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
114syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
115syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
116syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
117syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
118syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
119syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
120syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
121
122syn keyword sshconfigTunnel	point-to-point ethernet
123
124syn match sshconfigVar "%[rhplLdun]\>"
125syn match sshconfigSpecial "[*?]"
126syn match sshconfigNumber "\d\+"
127syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
128syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
129syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
130syn match sshconfigHostPort "\(Host \)\@<=.\+"
131syn match sshconfigHostPort "\(HostName \)\@<=.\+"
132
133" case off
134syn case ignore
135
136
137" Keywords
138syn keyword sshconfigHostSect Host
139
140syn keyword sshconfigMatch canonical exec host originalhost user localuser all
141
142syn keyword sshconfigKeyword AddressFamily
143syn keyword sshconfigKeyword AddKeysToAgent
144syn keyword sshconfigKeyword BatchMode
145syn keyword sshconfigKeyword BindAddress
146syn keyword sshconfigKeyword CanonicalDomains
147syn keyword sshconfigKeyword CanonicalizeFallbackLocal
148syn keyword sshconfigKeyword CanonicalizeHostname
149syn keyword sshconfigKeyword CanonicalizeMaxDots
150syn keyword sshconfigKeyword CertificateFile
151syn keyword sshconfigKeyword ChallengeResponseAuthentication
152syn keyword sshconfigKeyword CheckHostIP
153syn keyword sshconfigKeyword Cipher
154syn keyword sshconfigKeyword Ciphers
155syn keyword sshconfigKeyword ClearAllForwardings
156syn keyword sshconfigKeyword Compression
157syn keyword sshconfigKeyword CompressionLevel
158syn keyword sshconfigKeyword ConnectTimeout
159syn keyword sshconfigKeyword ConnectionAttempts
160syn keyword sshconfigKeyword ControlMaster
161syn keyword sshconfigKeyword ControlPath
162syn keyword sshconfigKeyword ControlPersist
163syn keyword sshconfigKeyword DynamicForward
164syn keyword sshconfigKeyword EnableSSHKeysign
165syn keyword sshconfigKeyword EscapeChar
166syn keyword sshconfigKeyword ExitOnForwardFailure
167syn keyword sshconfigKeyword ForwardAgent
168syn keyword sshconfigKeyword ForwardX11
169syn keyword sshconfigKeyword ForwardX11Timeout
170syn keyword sshconfigKeyword ForwardX11Trusted
171syn keyword sshconfigKeyword GSSAPIAuthentication
172syn keyword sshconfigKeyword GSSAPIClientIdentity
173syn keyword sshconfigKeyword GSSAPIDelegateCredentials
174syn keyword sshconfigKeyword GSSAPIKeyExchange
175syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
176syn keyword sshconfigKeyword GSSAPIServerIdentity
177syn keyword sshconfigKeyword GSSAPITrustDNS
178syn keyword sshconfigKeyword GSSAPITrustDns
179syn keyword sshconfigKeyword GatewayPorts
180syn keyword sshconfigKeyword GlobalKnownHostsFile
181syn keyword sshconfigKeyword HashKnownHosts
182syn keyword sshconfigKeyword HostKeyAlgorithms
183syn keyword sshconfigKeyword HostKeyAlias
184syn keyword sshconfigKeyword HostName
185syn keyword sshconfigKeyword HostbasedAuthentication
186syn keyword sshconfigKeyword HostbasedKeyTypes
187syn keyword sshconfigKeyword IPQoS
188syn keyword sshconfigKeyword IdentitiesOnly
189syn keyword sshconfigKeyword IdentityFile
190syn keyword sshconfigKeyword IgnoreUnknown
191syn keyword sshconfigKeyword IPQoS
192syn keyword sshconfigKeyword KbdInteractiveAuthentication
193syn keyword sshconfigKeyword KbdInteractiveDevices
194syn keyword sshconfigKeyword KexAlgorithms
195syn keyword sshconfigKeyword LocalCommand
196syn keyword sshconfigKeyword LocalForward
197syn keyword sshconfigKeyword LogLevel
198syn keyword sshconfigKeyword MACs
199syn keyword sshconfigKeyword Match
200syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
201syn keyword sshconfigKeyword NumberOfPasswordPrompts
202syn keyword sshconfigKeyword PKCS11Provider
203syn keyword sshconfigKeyword PasswordAuthentication
204syn keyword sshconfigKeyword PermitLocalCommand
205syn keyword sshconfigKeyword Port
206syn keyword sshconfigKeyword PreferredAuthentications
207syn keyword sshconfigKeyword Protocol
208syn keyword sshconfigKeyword ProxyCommand
209syn keyword sshconfigKeyword ProxyJump
210syn keyword sshconfigKeyword ProxyUseFDPass
211syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
212syn keyword sshconfigKeyword PubkeyAuthentication
213syn keyword sshconfigKeyword RSAAuthentication
214syn keyword sshconfigKeyword RekeyLimit
215syn keyword sshconfigKeyword RemoteForward
216syn keyword sshconfigKeyword RequestTTY
217syn keyword sshconfigKeyword RhostsRSAAuthentication
218syn keyword sshconfigKeyword SendEnv
219syn keyword sshconfigKeyword ServerAliveCountMax
220syn keyword sshconfigKeyword ServerAliveInterval
221syn keyword sshconfigKeyword SmartcardDevice
222syn keyword sshconfigKeyword StrictHostKeyChecking
223syn keyword sshconfigKeyword TCPKeepAlive
224syn keyword sshconfigKeyword Tunnel
225syn keyword sshconfigKeyword TunnelDevice
226syn keyword sshconfigKeyword UseBlacklistedKeys
227syn keyword sshconfigKeyword UsePrivilegedPort
228syn keyword sshconfigKeyword User
229syn keyword sshconfigKeyword UserKnownHostsFile
230syn keyword sshconfigKeyword UseRoaming
231syn keyword sshconfigKeyword VerifyHostKeyDNS
232syn keyword sshconfigKeyword VisualHostKey
233syn keyword sshconfigKeyword XAuthLocation
234
235" Define the default highlighting
236if version >= 508 || !exists("did_sshconfig_syntax_inits")
237  if version < 508
238    let did_sshconfig_syntax_inits = 1
239    command -nargs=+ HiLink hi link <args>
240  else
241    command -nargs=+ HiLink hi def link <args>
242  endif
243
244  HiLink sshconfigComment        Comment
245  HiLink sshconfigTodo           Todo
246  HiLink sshconfigHostPort       sshconfigConstant
247  HiLink sshconfigNumber         sshconfigConstant
248  HiLink sshconfigConstant       Constant
249  HiLink sshconfigYesNo          sshconfigEnum
250  HiLink sshconfigCipher         sshconfigEnum
251  HiLink sshconfigCiphers	 sshconfigEnum
252  HiLink sshconfigMAC            sshconfigEnum
253  HiLink sshconfigHostKeyAlgo    sshconfigEnum
254  HiLink sshconfigLogLevel       sshconfigEnum
255  HiLink sshconfigSysLogFacility sshconfigEnum
256  HiLink sshconfigAddressFamily  sshconfigEnum
257  HiLink sshconfigIPQoS		 sshconfigEnum
258  HiLink sshconfigKbdInteractive sshconfigEnum
259  HiLink sshconfigKexAlgo	 sshconfigEnum
260  HiLink sshconfigTunnel	 sshconfigEnum
261  HiLink sshconfigPreferredAuth  sshconfigEnum
262  HiLink sshconfigVar            sshconfigEnum
263  HiLink sshconfigEnum           Identifier
264  HiLink sshconfigSpecial        Special
265  HiLink sshconfigKeyword        Keyword
266  HiLink sshconfigHostSect       Type
267  HiLink sshconfigMatch          Type
268  delcommand HiLink
269endif
270
271let b:current_syntax = "sshconfig"
272
273" vim:set ts=8 sw=2 sts=2:
274