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