blob: 302d073f1e39f11317ed5e52e82e6aa5034a358e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01002" Language: OpenSSH client configuration file (ssh_config)
3" Author: David Necas (Yeti)
Bram Moolenaar256972a2015-12-29 19:10:25 +01004" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
Bram Moolenaar345efa02016-01-15 20:57:49 +01005" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
6" Contributor: Karsten Hopp <karsten@redhat.com>
Bram Moolenaar09521312016-08-12 22:54:35 +02007" Contributor: Dean, Adam Kenneth <adam.ken.dean@hpe.com>
8" Last Change: 2016 Aug 11
9" SSH Version: 7.3p1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010010"
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
12" Setup
13if version >= 600
Bram Moolenaar5c736222010-01-06 20:54:52 +010014 if exists("b:current_syntax")
15 finish
16 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000017else
Bram Moolenaar5c736222010-01-06 20:54:52 +010018 syntax clear
Bram Moolenaar071d4272004-06-13 20:20:40 +000019endif
20
21if version >= 600
Bram Moolenaar5c736222010-01-06 20:54:52 +010022 setlocal iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000023else
Bram Moolenaar5c736222010-01-06 20:54:52 +010024 set iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000025endif
26
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010027
28" case on
29syn case match
30
Bram Moolenaar071d4272004-06-13 20:20:40 +000031
32" Comments
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010033syn match sshconfigComment "^#.*$" contains=sshconfigTodo
34syn match sshconfigComment "\s#.*$" contains=sshconfigTodo
35
36syn keyword sshconfigTodo TODO FIXME NOTE contained
37
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
39" Constants
Bram Moolenaar939a1ab2016-04-10 01:31:25 +020040syn keyword sshconfigYesNo yes no ask confirm
Bram Moolenaar5c736222010-01-06 20:54:52 +010041syn keyword sshconfigYesNo any auto
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010042syn keyword sshconfigYesNo force autoask none
43
Bram Moolenaar328da0d2016-03-04 22:22:32 +010044syn keyword sshconfigCipher 3des blowfish
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010045
Bram Moolenaar328da0d2016-03-04 22:22:32 +010046syn 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\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010071syn match sshconfigMAC "\<umac-64@openssh\.com\>"
Bram Moolenaar328da0d2016-03-04 22:22:32 +010072syn 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\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010082
Bram Moolenaar328da0d2016-03-04 22:22:32 +010083syn 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\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010095
96syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
Bram Moolenaar071d4272004-06-13 20:20:40 +000097syn keyword sshconfigPreferredAuth keyboard-interactive
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010098
Bram Moolenaar071d4272004-06-13 20:20:40 +000099syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
100syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
Bram Moolenaar5c736222010-01-06 20:54:52 +0100101syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
102syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100103syn keyword sshconfigAddressFamily inet inet6
104
Bram Moolenaar345efa02016-01-15 20:57:49 +0100105syn match sshconfigIPQoS "af1[123]"
106syn match sshconfigIPQoS "af2[123]"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100107syn 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
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100113syn 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\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100121
122syn keyword sshconfigTunnel point-to-point ethernet
123
124syn match sshconfigVar "%[rhplLdun]\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000125syn 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\+\>"
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100130syn match sshconfigHostPort "\(Host \)\@<=.\+"
131syn match sshconfigHostPort "\(HostName \)\@<=.\+"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100132
133" case off
134syn case ignore
135
136
Bram Moolenaar071d4272004-06-13 20:20:40 +0000137" Keywords
138syn keyword sshconfigHostSect Host
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100139
Bram Moolenaar256972a2015-12-29 19:10:25 +0100140syn keyword sshconfigMatch canonical exec host originalhost user localuser all
141
Bram Moolenaar5c736222010-01-06 20:54:52 +0100142syn keyword sshconfigKeyword AddressFamily
Bram Moolenaar939a1ab2016-04-10 01:31:25 +0200143syn keyword sshconfigKeyword AddKeysToAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100144syn keyword sshconfigKeyword BatchMode
145syn keyword sshconfigKeyword BindAddress
Bram Moolenaar345efa02016-01-15 20:57:49 +0100146syn keyword sshconfigKeyword CanonicalDomains
147syn keyword sshconfigKeyword CanonicalizeFallbackLocal
148syn keyword sshconfigKeyword CanonicalizeHostname
149syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100150syn keyword sshconfigKeyword CertificateFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100151syn 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
Bram Moolenaar5c736222010-01-06 20:54:52 +0100170syn keyword sshconfigKeyword ForwardX11Trusted
171syn keyword sshconfigKeyword GSSAPIAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100172syn 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
Bram Moolenaar5c736222010-01-06 20:54:52 +0100180syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100181syn keyword sshconfigKeyword HashKnownHosts
182syn keyword sshconfigKeyword HostKeyAlgorithms
183syn keyword sshconfigKeyword HostKeyAlias
184syn keyword sshconfigKeyword HostName
185syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaar256972a2015-12-29 19:10:25 +0100186syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100187syn keyword sshconfigKeyword IPQoS
188syn keyword sshconfigKeyword IdentitiesOnly
189syn keyword sshconfigKeyword IdentityFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100190syn keyword sshconfigKeyword IgnoreUnknown
191syn keyword sshconfigKeyword IPQoS
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100192syn keyword sshconfigKeyword KbdInteractiveAuthentication
193syn keyword sshconfigKeyword KbdInteractiveDevices
194syn keyword sshconfigKeyword KexAlgorithms
195syn keyword sshconfigKeyword LocalCommand
196syn keyword sshconfigKeyword LocalForward
197syn keyword sshconfigKeyword LogLevel
Bram Moolenaar5c736222010-01-06 20:54:52 +0100198syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100199syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100200syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
201syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100202syn keyword sshconfigKeyword PKCS11Provider
203syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100204syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100205syn keyword sshconfigKeyword Port
206syn keyword sshconfigKeyword PreferredAuthentications
207syn keyword sshconfigKeyword Protocol
208syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar09521312016-08-12 22:54:35 +0200209syn keyword sshconfigKeyword ProxyJump
Bram Moolenaar256972a2015-12-29 19:10:25 +0100210syn keyword sshconfigKeyword ProxyUseFDPass
211syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100212syn keyword sshconfigKeyword PubkeyAuthentication
213syn keyword sshconfigKeyword RSAAuthentication
214syn keyword sshconfigKeyword RekeyLimit
215syn keyword sshconfigKeyword RemoteForward
216syn keyword sshconfigKeyword RequestTTY
Bram Moolenaar5c736222010-01-06 20:54:52 +0100217syn keyword sshconfigKeyword RhostsRSAAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100218syn 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
Bram Moolenaar5c736222010-01-06 20:54:52 +0100229syn keyword sshconfigKeyword UserKnownHostsFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100230syn keyword sshconfigKeyword UseRoaming
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100231syn keyword sshconfigKeyword VerifyHostKeyDNS
232syn keyword sshconfigKeyword VisualHostKey
Bram Moolenaar5c736222010-01-06 20:54:52 +0100233syn keyword sshconfigKeyword XAuthLocation
Bram Moolenaar071d4272004-06-13 20:20:40 +0000234
235" Define the default highlighting
236if version >= 508 || !exists("did_sshconfig_syntax_inits")
Bram Moolenaar5c736222010-01-06 20:54:52 +0100237 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000243
Bram Moolenaar5c736222010-01-06 20:54:52 +0100244 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
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100251 HiLink sshconfigCiphers sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100252 HiLink sshconfigMAC sshconfigEnum
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100253 HiLink sshconfigHostKeyAlgo sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100254 HiLink sshconfigLogLevel sshconfigEnum
255 HiLink sshconfigSysLogFacility sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100256 HiLink sshconfigAddressFamily sshconfigEnum
257 HiLink sshconfigIPQoS sshconfigEnum
258 HiLink sshconfigKbdInteractive sshconfigEnum
259 HiLink sshconfigKexAlgo sshconfigEnum
260 HiLink sshconfigTunnel sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100261 HiLink sshconfigPreferredAuth sshconfigEnum
262 HiLink sshconfigVar sshconfigEnum
263 HiLink sshconfigEnum Identifier
264 HiLink sshconfigSpecial Special
265 HiLink sshconfigKeyword Keyword
266 HiLink sshconfigHostSect Type
Bram Moolenaar256972a2015-12-29 19:10:25 +0100267 HiLink sshconfigMatch Type
Bram Moolenaar5c736222010-01-06 20:54:52 +0100268 delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +0000269endif
270
271let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100272
273" vim:set ts=8 sw=2 sts=2: