blob: bd9f0a3c28d1f121537eaea1e23cec4511e5eb6e [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 Moolenaar939a1ab2016-04-10 01:31:25 +02007" Last Change: 2016 Apr 7
8" SSH Version: 7.2p2
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
Bram Moolenaar939a1ab2016-04-10 01:31:25 +020039syn keyword sshconfigYesNo yes no ask confirm
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 Moolenaar939a1ab2016-04-10 01:31:25 +0200142syn keyword sshconfigKeyword AddKeysToAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100143syn keyword sshconfigKeyword BatchMode
144syn keyword sshconfigKeyword BindAddress
Bram Moolenaar345efa02016-01-15 20:57:49 +0100145syn keyword sshconfigKeyword CanonicalDomains
146syn keyword sshconfigKeyword CanonicalizeFallbackLocal
147syn keyword sshconfigKeyword CanonicalizeHostname
148syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100149syn keyword sshconfigKeyword CertificateFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100150syn keyword sshconfigKeyword ChallengeResponseAuthentication
151syn keyword sshconfigKeyword CheckHostIP
152syn keyword sshconfigKeyword Cipher
153syn keyword sshconfigKeyword Ciphers
154syn keyword sshconfigKeyword ClearAllForwardings
155syn keyword sshconfigKeyword Compression
156syn keyword sshconfigKeyword CompressionLevel
157syn keyword sshconfigKeyword ConnectTimeout
158syn keyword sshconfigKeyword ConnectionAttempts
159syn keyword sshconfigKeyword ControlMaster
160syn keyword sshconfigKeyword ControlPath
161syn keyword sshconfigKeyword ControlPersist
162syn keyword sshconfigKeyword DynamicForward
163syn keyword sshconfigKeyword EnableSSHKeysign
164syn keyword sshconfigKeyword EscapeChar
165syn keyword sshconfigKeyword ExitOnForwardFailure
166syn keyword sshconfigKeyword ForwardAgent
167syn keyword sshconfigKeyword ForwardX11
168syn keyword sshconfigKeyword ForwardX11Timeout
Bram Moolenaar5c736222010-01-06 20:54:52 +0100169syn keyword sshconfigKeyword ForwardX11Trusted
170syn keyword sshconfigKeyword GSSAPIAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100171syn keyword sshconfigKeyword GSSAPIClientIdentity
172syn keyword sshconfigKeyword GSSAPIDelegateCredentials
173syn keyword sshconfigKeyword GSSAPIKeyExchange
174syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
175syn keyword sshconfigKeyword GSSAPIServerIdentity
176syn keyword sshconfigKeyword GSSAPITrustDNS
177syn keyword sshconfigKeyword GSSAPITrustDns
178syn keyword sshconfigKeyword GatewayPorts
Bram Moolenaar5c736222010-01-06 20:54:52 +0100179syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100180syn keyword sshconfigKeyword HashKnownHosts
181syn keyword sshconfigKeyword HostKeyAlgorithms
182syn keyword sshconfigKeyword HostKeyAlias
183syn keyword sshconfigKeyword HostName
184syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaar256972a2015-12-29 19:10:25 +0100185syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100186syn keyword sshconfigKeyword IPQoS
187syn keyword sshconfigKeyword IdentitiesOnly
188syn keyword sshconfigKeyword IdentityFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100189syn keyword sshconfigKeyword IgnoreUnknown
190syn keyword sshconfigKeyword IPQoS
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100191syn keyword sshconfigKeyword KbdInteractiveAuthentication
192syn keyword sshconfigKeyword KbdInteractiveDevices
193syn keyword sshconfigKeyword KexAlgorithms
194syn keyword sshconfigKeyword LocalCommand
195syn keyword sshconfigKeyword LocalForward
196syn keyword sshconfigKeyword LogLevel
Bram Moolenaar5c736222010-01-06 20:54:52 +0100197syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100198syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100199syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
200syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100201syn keyword sshconfigKeyword PKCS11Provider
202syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100203syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100204syn keyword sshconfigKeyword Port
205syn keyword sshconfigKeyword PreferredAuthentications
206syn keyword sshconfigKeyword Protocol
207syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar256972a2015-12-29 19:10:25 +0100208syn keyword sshconfigKeyword ProxyUseFDPass
209syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100210syn keyword sshconfigKeyword PubkeyAuthentication
211syn keyword sshconfigKeyword RSAAuthentication
212syn keyword sshconfigKeyword RekeyLimit
213syn keyword sshconfigKeyword RemoteForward
214syn keyword sshconfigKeyword RequestTTY
Bram Moolenaar5c736222010-01-06 20:54:52 +0100215syn keyword sshconfigKeyword RhostsRSAAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100216syn keyword sshconfigKeyword SendEnv
217syn keyword sshconfigKeyword ServerAliveCountMax
218syn keyword sshconfigKeyword ServerAliveInterval
219syn keyword sshconfigKeyword SmartcardDevice
220syn keyword sshconfigKeyword StrictHostKeyChecking
221syn keyword sshconfigKeyword TCPKeepAlive
222syn keyword sshconfigKeyword Tunnel
223syn keyword sshconfigKeyword TunnelDevice
224syn keyword sshconfigKeyword UseBlacklistedKeys
225syn keyword sshconfigKeyword UsePrivilegedPort
226syn keyword sshconfigKeyword User
Bram Moolenaar5c736222010-01-06 20:54:52 +0100227syn keyword sshconfigKeyword UserKnownHostsFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100228syn keyword sshconfigKeyword UseRoaming
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100229syn keyword sshconfigKeyword VerifyHostKeyDNS
230syn keyword sshconfigKeyword VisualHostKey
Bram Moolenaar5c736222010-01-06 20:54:52 +0100231syn keyword sshconfigKeyword XAuthLocation
Bram Moolenaar071d4272004-06-13 20:20:40 +0000232
233" Define the default highlighting
234if version >= 508 || !exists("did_sshconfig_syntax_inits")
Bram Moolenaar5c736222010-01-06 20:54:52 +0100235 if version < 508
236 let did_sshconfig_syntax_inits = 1
237 command -nargs=+ HiLink hi link <args>
238 else
239 command -nargs=+ HiLink hi def link <args>
240 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000241
Bram Moolenaar5c736222010-01-06 20:54:52 +0100242 HiLink sshconfigComment Comment
243 HiLink sshconfigTodo Todo
244 HiLink sshconfigHostPort sshconfigConstant
245 HiLink sshconfigNumber sshconfigConstant
246 HiLink sshconfigConstant Constant
247 HiLink sshconfigYesNo sshconfigEnum
248 HiLink sshconfigCipher sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100249 HiLink sshconfigCiphers sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100250 HiLink sshconfigMAC sshconfigEnum
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100251 HiLink sshconfigHostKeyAlgo sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100252 HiLink sshconfigLogLevel sshconfigEnum
253 HiLink sshconfigSysLogFacility sshconfigEnum
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100254 HiLink sshconfigAddressFamily sshconfigEnum
255 HiLink sshconfigIPQoS sshconfigEnum
256 HiLink sshconfigKbdInteractive sshconfigEnum
257 HiLink sshconfigKexAlgo sshconfigEnum
258 HiLink sshconfigTunnel sshconfigEnum
Bram Moolenaar5c736222010-01-06 20:54:52 +0100259 HiLink sshconfigPreferredAuth sshconfigEnum
260 HiLink sshconfigVar sshconfigEnum
261 HiLink sshconfigEnum Identifier
262 HiLink sshconfigSpecial Special
263 HiLink sshconfigKeyword Keyword
264 HiLink sshconfigHostSect Type
Bram Moolenaar256972a2015-12-29 19:10:25 +0100265 HiLink sshconfigMatch Type
Bram Moolenaar5c736222010-01-06 20:54:52 +0100266 delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +0000267endif
268
269let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100270
271" vim:set ts=8 sw=2 sts=2: