blob: ef2ca07976207d07561f7375b3bb7a299ac5a231 [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>
7" Last Change: 2016 Jan 15
8" SSH Version: 7.1
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
43syn keyword sshconfigCipher 3des blowfish
44syn keyword sshconfigCiphers aes128-cbc 3des-cbc blowfish blowfish-cbc cast128-cbc
45syn keyword sshconfigCiphers aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr
46syn keyword sshconfigCiphers arcfour arcfour128 arcfour256 cast128-cbc
47
Bram Moolenaar071d4272004-06-13 20:20:40 +000048syn keyword sshconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
49syn keyword sshconfigMAC hmac-md5-96
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010050syn keyword sshconfigMAC hmac-sha2-256 hmac-sha2-256-96 hmac-sha2-512
51syn keyword sshconfigMAC hmac-sha2-512-96
52syn match sshconfigMAC "\<umac-64@openssh\.com\>"
53
Bram Moolenaar071d4272004-06-13 20:20:40 +000054syn keyword sshconfigHostKeyAlg ssh-rsa ssh-dss
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010055syn match sshconfigHostKeyAlg "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
56syn match sshconfigHostKeyAlg "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
57syn match sshconfigHostKeyAlg "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
58syn match sshconfigHostKeyAlg "\<ssh-rsa-cert-v01@openssh\.com\>"
59syn match sshconfigHostKeyAlg "\<ssh-dss-cert-v01@openssh\.com\>"
60syn match sshconfigHostKeyAlg "\<ssh-rsa-cert-v00@openssh\.com\>"
61syn match sshconfigHostKeyAlg "\<ssh-dss-cert-v00@openssh\.com\>"
62syn keyword sshconfigHostKeyAlg ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521
63
64syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
Bram Moolenaar071d4272004-06-13 20:20:40 +000065syn keyword sshconfigPreferredAuth keyboard-interactive
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010066
Bram Moolenaar071d4272004-06-13 20:20:40 +000067syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
68syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
Bram Moolenaar5c736222010-01-06 20:54:52 +010069syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
70syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010071syn keyword sshconfigAddressFamily inet inet6
72
Bram Moolenaar345efa02016-01-15 20:57:49 +010073syn match sshconfigIPQoS "af1[123]"
74syn match sshconfigIPQoS "af2[123]"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010075syn match sshconfigIPQoS "af3[123]"
76syn match sshconfigIPQoS "af4[123]"
77syn match sshconfigIPQoS "cs[0-7]"
78syn keyword sshconfigIPQoS ef lowdelay throughput reliability
79syn keyword sshconfigKbdInteractive bsdauth pam skey
80
81syn keyword sshconfigKexAlgo ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521
82syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
83syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
84syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
85syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
86
87syn keyword sshconfigTunnel point-to-point ethernet
88
89syn match sshconfigVar "%[rhplLdun]\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000090syn match sshconfigSpecial "[*?]"
91syn match sshconfigNumber "\d\+"
92syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
93syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
94syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
Bram Moolenaardb7207e2012-02-22 17:30:19 +010095syn match sshconfigHostPort "\(Host \)\@<=.\+"
96syn match sshconfigHostPort "\(HostName \)\@<=.\+"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010097
98" case off
99syn case ignore
100
101
Bram Moolenaar071d4272004-06-13 20:20:40 +0000102" Keywords
103syn keyword sshconfigHostSect Host
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100104
Bram Moolenaar256972a2015-12-29 19:10:25 +0100105syn keyword sshconfigMatch canonical exec host originalhost user localuser all
106
Bram Moolenaar5c736222010-01-06 20:54:52 +0100107syn keyword sshconfigKeyword AddressFamily
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100108syn keyword sshconfigKeyword BatchMode
109syn keyword sshconfigKeyword BindAddress
Bram Moolenaar345efa02016-01-15 20:57:49 +0100110syn keyword sshconfigKeyword CanonicalDomains
111syn keyword sshconfigKeyword CanonicalizeFallbackLocal
112syn keyword sshconfigKeyword CanonicalizeHostname
113syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100114syn keyword sshconfigKeyword ChallengeResponseAuthentication
115syn keyword sshconfigKeyword CheckHostIP
116syn keyword sshconfigKeyword Cipher
117syn keyword sshconfigKeyword Ciphers
118syn keyword sshconfigKeyword ClearAllForwardings
119syn keyword sshconfigKeyword Compression
120syn keyword sshconfigKeyword CompressionLevel
121syn keyword sshconfigKeyword ConnectTimeout
122syn keyword sshconfigKeyword ConnectionAttempts
123syn keyword sshconfigKeyword ControlMaster
124syn keyword sshconfigKeyword ControlPath
125syn keyword sshconfigKeyword ControlPersist
126syn keyword sshconfigKeyword DynamicForward
127syn keyword sshconfigKeyword EnableSSHKeysign
128syn keyword sshconfigKeyword EscapeChar
129syn keyword sshconfigKeyword ExitOnForwardFailure
130syn keyword sshconfigKeyword ForwardAgent
131syn keyword sshconfigKeyword ForwardX11
132syn keyword sshconfigKeyword ForwardX11Timeout
Bram Moolenaar5c736222010-01-06 20:54:52 +0100133syn keyword sshconfigKeyword ForwardX11Trusted
134syn keyword sshconfigKeyword GSSAPIAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100135syn keyword sshconfigKeyword GSSAPIClientIdentity
136syn keyword sshconfigKeyword GSSAPIDelegateCredentials
137syn keyword sshconfigKeyword GSSAPIKeyExchange
138syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
139syn keyword sshconfigKeyword GSSAPIServerIdentity
140syn keyword sshconfigKeyword GSSAPITrustDNS
141syn keyword sshconfigKeyword GSSAPITrustDns
142syn keyword sshconfigKeyword GatewayPorts
Bram Moolenaar5c736222010-01-06 20:54:52 +0100143syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100144syn keyword sshconfigKeyword HashKnownHosts
145syn keyword sshconfigKeyword HostKeyAlgorithms
146syn keyword sshconfigKeyword HostKeyAlias
147syn keyword sshconfigKeyword HostName
148syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaar256972a2015-12-29 19:10:25 +0100149syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100150syn keyword sshconfigKeyword IPQoS
151syn keyword sshconfigKeyword IdentitiesOnly
152syn keyword sshconfigKeyword IdentityFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100153syn keyword sshconfigKeyword IgnoreUnknown
154syn keyword sshconfigKeyword IPQoS
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100155syn keyword sshconfigKeyword KbdInteractiveAuthentication
156syn keyword sshconfigKeyword KbdInteractiveDevices
157syn keyword sshconfigKeyword KexAlgorithms
158syn keyword sshconfigKeyword LocalCommand
159syn keyword sshconfigKeyword LocalForward
160syn keyword sshconfigKeyword LogLevel
Bram Moolenaar5c736222010-01-06 20:54:52 +0100161syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100162syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100163syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
164syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100165syn keyword sshconfigKeyword PKCS11Provider
166syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100167syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100168syn keyword sshconfigKeyword Port
169syn keyword sshconfigKeyword PreferredAuthentications
170syn keyword sshconfigKeyword Protocol
171syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar256972a2015-12-29 19:10:25 +0100172syn keyword sshconfigKeyword ProxyUseFDPass
173syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100174syn keyword sshconfigKeyword PubkeyAuthentication
175syn keyword sshconfigKeyword RSAAuthentication
176syn keyword sshconfigKeyword RekeyLimit
177syn keyword sshconfigKeyword RemoteForward
178syn keyword sshconfigKeyword RequestTTY
Bram Moolenaar5c736222010-01-06 20:54:52 +0100179syn keyword sshconfigKeyword RhostsRSAAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100180syn keyword sshconfigKeyword SendEnv
181syn keyword sshconfigKeyword ServerAliveCountMax
182syn keyword sshconfigKeyword ServerAliveInterval
183syn keyword sshconfigKeyword SmartcardDevice
184syn keyword sshconfigKeyword StrictHostKeyChecking
185syn keyword sshconfigKeyword TCPKeepAlive
186syn keyword sshconfigKeyword Tunnel
187syn keyword sshconfigKeyword TunnelDevice
188syn keyword sshconfigKeyword UseBlacklistedKeys
189syn keyword sshconfigKeyword UsePrivilegedPort
190syn keyword sshconfigKeyword User
Bram Moolenaar5c736222010-01-06 20:54:52 +0100191syn keyword sshconfigKeyword UserKnownHostsFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100192syn keyword sshconfigKeyword UseRoaming
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100193syn keyword sshconfigKeyword VerifyHostKeyDNS
194syn keyword sshconfigKeyword VisualHostKey
Bram Moolenaar5c736222010-01-06 20:54:52 +0100195syn keyword sshconfigKeyword XAuthLocation
Bram Moolenaar071d4272004-06-13 20:20:40 +0000196
197" Define the default highlighting
198if version >= 508 || !exists("did_sshconfig_syntax_inits")
Bram Moolenaar5c736222010-01-06 20:54:52 +0100199 if version < 508
200 let did_sshconfig_syntax_inits = 1
201 command -nargs=+ HiLink hi link <args>
202 else
203 command -nargs=+ HiLink hi def link <args>
204 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000205
Bram Moolenaar5c736222010-01-06 20:54:52 +0100206 HiLink sshconfigComment Comment
207 HiLink sshconfigTodo Todo
208 HiLink sshconfigHostPort sshconfigConstant
209 HiLink sshconfigNumber sshconfigConstant
210 HiLink sshconfigConstant Constant
211 HiLink sshconfigYesNo sshconfigEnum
212 HiLink sshconfigCipher sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100213 HiLink sshconfigCiphers sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100214 HiLink sshconfigMAC sshconfigEnum
215 HiLink sshconfigHostKeyAlg sshconfigEnum
216 HiLink sshconfigLogLevel sshconfigEnum
217 HiLink sshconfigSysLogFacility sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100218 HiLink sshconfigAddressFamily sshconfigEnum
219 HiLink sshconfigIPQoS sshconfigEnum
220 HiLink sshconfigKbdInteractive sshconfigEnum
221 HiLink sshconfigKexAlgo sshconfigEnum
222 HiLink sshconfigTunnel sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100223 HiLink sshconfigPreferredAuth sshconfigEnum
224 HiLink sshconfigVar sshconfigEnum
225 HiLink sshconfigEnum Identifier
226 HiLink sshconfigSpecial Special
227 HiLink sshconfigKeyword Keyword
228 HiLink sshconfigHostSect Type
Bram Moolenaar256972a2015-12-29 19:10:25 +0100229 HiLink sshconfigMatch Type
Bram Moolenaar5c736222010-01-06 20:54:52 +0100230 delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +0000231endif
232
233let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100234
235" vim:set ts=8 sw=2 sts=2: