blob: 44b3c67a96c80f0821298ceca11a2bb1dddda77f [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 Moolenaar328da0d2016-03-04 22:22:32 +01007" Last Change: 2016 Mar 1
8" SSH Version: 7.2
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01009"
Bram Moolenaar071d4272004-06-13 20:20:40 +000010
11" Setup
12if version >= 600
Bram Moolenaar5c736222010-01-06 20:54:52 +010013 if exists("b:current_syntax")
14 finish
15 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000016else
Bram Moolenaar5c736222010-01-06 20:54:52 +010017 syntax clear
Bram Moolenaar071d4272004-06-13 20:20:40 +000018endif
19
20if version >= 600
Bram Moolenaar5c736222010-01-06 20:54:52 +010021 setlocal iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000022else
Bram Moolenaar5c736222010-01-06 20:54:52 +010023 set iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000024endif
25
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010026
27" case on
28syn case match
29
Bram Moolenaar071d4272004-06-13 20:20:40 +000030
31" Comments
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010032syn match sshconfigComment "^#.*$" contains=sshconfigTodo
33syn match sshconfigComment "\s#.*$" contains=sshconfigTodo
34
35syn keyword sshconfigTodo TODO FIXME NOTE contained
36
Bram Moolenaar071d4272004-06-13 20:20:40 +000037
38" Constants
39syn keyword sshconfigYesNo yes no ask
Bram Moolenaar5c736222010-01-06 20:54:52 +010040syn keyword sshconfigYesNo any auto
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010041syn keyword sshconfigYesNo force autoask none
42
Bram Moolenaar328da0d2016-03-04 22:22:32 +010043syn keyword sshconfigCipher 3des blowfish
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010044
Bram Moolenaar328da0d2016-03-04 22:22:32 +010045syn keyword sshconfigCiphers 3des-cbc
46syn keyword sshconfigCiphers blowfish-cbc
47syn keyword sshconfigCiphers cast128-cbc
48syn keyword sshconfigCiphers arcfour
49syn keyword sshconfigCiphers arcfour128
50syn keyword sshconfigCiphers arcfour256
51syn keyword sshconfigCiphers aes128-cbc
52syn keyword sshconfigCiphers aes192-cbc
53syn keyword sshconfigCiphers aes256-cbc
54syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
55syn keyword sshconfigCiphers aes128-ctr
56syn keyword sshconfigCiphers aes192-ctr
57syn keyword sshconfigCiphers aes256-ctr
58syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
59syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
60syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
61
62syn keyword sshconfigMAC hmac-sha1
63syn keyword sshconfigMAC mac-sha1-96
64syn keyword sshconfigMAC mac-sha2-256
65syn keyword sshconfigMAC mac-sha2-512
66syn keyword sshconfigMAC mac-md5
67syn keyword sshconfigMAC mac-md5-96
68syn keyword sshconfigMAC mac-ripemd160
69syn match sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010070syn match sshconfigMAC "\<umac-64@openssh\.com\>"
Bram Moolenaar328da0d2016-03-04 22:22:32 +010071syn match sshconfigMAC "\<umac-128@openssh\.com\>"
72syn match sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
73syn match sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
74syn match sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
75syn match sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
76syn match sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
77syn match sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
78syn match sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
79syn match sshconfigMAC "\<umac-64-etm@openssh\.com\>"
80syn match sshconfigMAC "\<umac-128-etm@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010081
Bram Moolenaar328da0d2016-03-04 22:22:32 +010082syn keyword sshconfigHostKeyAlgo ssh-ed25519
83syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
84syn keyword sshconfigHostKeyAlgo ssh-rsa
85syn keyword sshconfigHostKeyAlgo ssh-dss
86syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
87syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
88syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
89syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
90syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
91syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
92syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
93syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010094
95syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
Bram Moolenaar071d4272004-06-13 20:20:40 +000096syn keyword sshconfigPreferredAuth keyboard-interactive
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010097
Bram Moolenaar071d4272004-06-13 20:20:40 +000098syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
99syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
Bram Moolenaar5c736222010-01-06 20:54:52 +0100100syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
101syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100102syn keyword sshconfigAddressFamily inet inet6
103
Bram Moolenaar345efa02016-01-15 20:57:49 +0100104syn match sshconfigIPQoS "af1[123]"
105syn match sshconfigIPQoS "af2[123]"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100106syn match sshconfigIPQoS "af3[123]"
107syn match sshconfigIPQoS "af4[123]"
108syn match sshconfigIPQoS "cs[0-7]"
109syn keyword sshconfigIPQoS ef lowdelay throughput reliability
110syn keyword sshconfigKbdInteractive bsdauth pam skey
111
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100112syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
113syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
114syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
115syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
116syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
117syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
118syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
119syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100120
121syn keyword sshconfigTunnel point-to-point ethernet
122
123syn match sshconfigVar "%[rhplLdun]\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124syn match sshconfigSpecial "[*?]"
125syn match sshconfigNumber "\d\+"
126syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
127syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
128syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100129syn match sshconfigHostPort "\(Host \)\@<=.\+"
130syn match sshconfigHostPort "\(HostName \)\@<=.\+"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100131
132" case off
133syn case ignore
134
135
Bram Moolenaar071d4272004-06-13 20:20:40 +0000136" Keywords
137syn keyword sshconfigHostSect Host
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100138
Bram Moolenaar256972a2015-12-29 19:10:25 +0100139syn keyword sshconfigMatch canonical exec host originalhost user localuser all
140
Bram Moolenaar5c736222010-01-06 20:54:52 +0100141syn keyword sshconfigKeyword AddressFamily
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100142syn keyword sshconfigKeyword BatchMode
143syn keyword sshconfigKeyword BindAddress
Bram Moolenaar345efa02016-01-15 20:57:49 +0100144syn keyword sshconfigKeyword CanonicalDomains
145syn keyword sshconfigKeyword CanonicalizeFallbackLocal
146syn keyword sshconfigKeyword CanonicalizeHostname
147syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100148syn keyword sshconfigKeyword CertificateFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100149syn keyword sshconfigKeyword ChallengeResponseAuthentication
150syn keyword sshconfigKeyword CheckHostIP
151syn keyword sshconfigKeyword Cipher
152syn keyword sshconfigKeyword Ciphers
153syn keyword sshconfigKeyword ClearAllForwardings
154syn keyword sshconfigKeyword Compression
155syn keyword sshconfigKeyword CompressionLevel
156syn keyword sshconfigKeyword ConnectTimeout
157syn keyword sshconfigKeyword ConnectionAttempts
158syn keyword sshconfigKeyword ControlMaster
159syn keyword sshconfigKeyword ControlPath
160syn keyword sshconfigKeyword ControlPersist
161syn keyword sshconfigKeyword DynamicForward
162syn keyword sshconfigKeyword EnableSSHKeysign
163syn keyword sshconfigKeyword EscapeChar
164syn keyword sshconfigKeyword ExitOnForwardFailure
165syn keyword sshconfigKeyword ForwardAgent
166syn keyword sshconfigKeyword ForwardX11
167syn keyword sshconfigKeyword ForwardX11Timeout
Bram Moolenaar5c736222010-01-06 20:54:52 +0100168syn keyword sshconfigKeyword ForwardX11Trusted
169syn keyword sshconfigKeyword GSSAPIAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100170syn keyword sshconfigKeyword GSSAPIClientIdentity
171syn keyword sshconfigKeyword GSSAPIDelegateCredentials
172syn keyword sshconfigKeyword GSSAPIKeyExchange
173syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
174syn keyword sshconfigKeyword GSSAPIServerIdentity
175syn keyword sshconfigKeyword GSSAPITrustDNS
176syn keyword sshconfigKeyword GSSAPITrustDns
177syn keyword sshconfigKeyword GatewayPorts
Bram Moolenaar5c736222010-01-06 20:54:52 +0100178syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100179syn keyword sshconfigKeyword HashKnownHosts
180syn keyword sshconfigKeyword HostKeyAlgorithms
181syn keyword sshconfigKeyword HostKeyAlias
182syn keyword sshconfigKeyword HostName
183syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaar256972a2015-12-29 19:10:25 +0100184syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100185syn keyword sshconfigKeyword IPQoS
186syn keyword sshconfigKeyword IdentitiesOnly
187syn keyword sshconfigKeyword IdentityFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100188syn keyword sshconfigKeyword IgnoreUnknown
189syn keyword sshconfigKeyword IPQoS
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100190syn keyword sshconfigKeyword KbdInteractiveAuthentication
191syn keyword sshconfigKeyword KbdInteractiveDevices
192syn keyword sshconfigKeyword KexAlgorithms
193syn keyword sshconfigKeyword LocalCommand
194syn keyword sshconfigKeyword LocalForward
195syn keyword sshconfigKeyword LogLevel
Bram Moolenaar5c736222010-01-06 20:54:52 +0100196syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100197syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100198syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
199syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100200syn keyword sshconfigKeyword PKCS11Provider
201syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100202syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100203syn keyword sshconfigKeyword Port
204syn keyword sshconfigKeyword PreferredAuthentications
205syn keyword sshconfigKeyword Protocol
206syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar256972a2015-12-29 19:10:25 +0100207syn keyword sshconfigKeyword ProxyUseFDPass
208syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100209syn keyword sshconfigKeyword PubkeyAuthentication
210syn keyword sshconfigKeyword RSAAuthentication
211syn keyword sshconfigKeyword RekeyLimit
212syn keyword sshconfigKeyword RemoteForward
213syn keyword sshconfigKeyword RequestTTY
Bram Moolenaar5c736222010-01-06 20:54:52 +0100214syn keyword sshconfigKeyword RhostsRSAAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100215syn keyword sshconfigKeyword SendEnv
216syn keyword sshconfigKeyword ServerAliveCountMax
217syn keyword sshconfigKeyword ServerAliveInterval
218syn keyword sshconfigKeyword SmartcardDevice
219syn keyword sshconfigKeyword StrictHostKeyChecking
220syn keyword sshconfigKeyword TCPKeepAlive
221syn keyword sshconfigKeyword Tunnel
222syn keyword sshconfigKeyword TunnelDevice
223syn keyword sshconfigKeyword UseBlacklistedKeys
224syn keyword sshconfigKeyword UsePrivilegedPort
225syn keyword sshconfigKeyword User
Bram Moolenaar5c736222010-01-06 20:54:52 +0100226syn keyword sshconfigKeyword UserKnownHostsFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100227syn keyword sshconfigKeyword UseRoaming
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100228syn keyword sshconfigKeyword VerifyHostKeyDNS
229syn keyword sshconfigKeyword VisualHostKey
Bram Moolenaar5c736222010-01-06 20:54:52 +0100230syn keyword sshconfigKeyword XAuthLocation
Bram Moolenaar071d4272004-06-13 20:20:40 +0000231
232" Define the default highlighting
233if version >= 508 || !exists("did_sshconfig_syntax_inits")
Bram Moolenaar5c736222010-01-06 20:54:52 +0100234 if version < 508
235 let did_sshconfig_syntax_inits = 1
236 command -nargs=+ HiLink hi link <args>
237 else
238 command -nargs=+ HiLink hi def link <args>
239 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000240
Bram Moolenaar5c736222010-01-06 20:54:52 +0100241 HiLink sshconfigComment Comment
242 HiLink sshconfigTodo Todo
243 HiLink sshconfigHostPort sshconfigConstant
244 HiLink sshconfigNumber sshconfigConstant
245 HiLink sshconfigConstant Constant
246 HiLink sshconfigYesNo sshconfigEnum
247 HiLink sshconfigCipher sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100248 HiLink sshconfigCiphers sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100249 HiLink sshconfigMAC sshconfigEnum
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100250 HiLink sshconfigHostKeyAlgo sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100251 HiLink sshconfigLogLevel sshconfigEnum
252 HiLink sshconfigSysLogFacility sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100253 HiLink sshconfigAddressFamily sshconfigEnum
254 HiLink sshconfigIPQoS sshconfigEnum
255 HiLink sshconfigKbdInteractive sshconfigEnum
256 HiLink sshconfigKexAlgo sshconfigEnum
257 HiLink sshconfigTunnel sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100258 HiLink sshconfigPreferredAuth sshconfigEnum
259 HiLink sshconfigVar sshconfigEnum
260 HiLink sshconfigEnum Identifier
261 HiLink sshconfigSpecial Special
262 HiLink sshconfigKeyword Keyword
263 HiLink sshconfigHostSect Type
Bram Moolenaar256972a2015-12-29 19:10:25 +0100264 HiLink sshconfigMatch Type
Bram Moolenaar5c736222010-01-06 20:54:52 +0100265 delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +0000266endif
267
268let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100269
270" vim:set ts=8 sw=2 sts=2: