blob: 6c36f56af8c43780f474b36d737c6bcc5cb2950f [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>
Bram Moolenaar8fe10002019-09-11 22:56:44 +02008" Last Change: 2019 Sep 09
9" Added RemoteCommand from pull request #4809
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010010" SSH Version: 7.4p1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010011"
Bram Moolenaar071d4272004-06-13 20:20:40 +000012
13" Setup
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020014" quit when a syntax file was already loaded
15if exists("b:current_syntax")
16 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000017endif
18
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020019setlocal iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000020
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010021
22" case on
23syn case match
24
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
26" Comments
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010027syn match sshconfigComment "^#.*$" contains=sshconfigTodo
28syn match sshconfigComment "\s#.*$" contains=sshconfigTodo
29
30syn keyword sshconfigTodo TODO FIXME NOTE contained
31
Bram Moolenaar071d4272004-06-13 20:20:40 +000032
33" Constants
Bram Moolenaar939a1ab2016-04-10 01:31:25 +020034syn keyword sshconfigYesNo yes no ask confirm
Bram Moolenaar5c736222010-01-06 20:54:52 +010035syn keyword sshconfigYesNo any auto
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010036syn keyword sshconfigYesNo force autoask none
37
Bram Moolenaar328da0d2016-03-04 22:22:32 +010038syn keyword sshconfigCipher 3des blowfish
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010039
Bram Moolenaar328da0d2016-03-04 22:22:32 +010040syn keyword sshconfigCiphers 3des-cbc
41syn keyword sshconfigCiphers blowfish-cbc
42syn keyword sshconfigCiphers cast128-cbc
43syn keyword sshconfigCiphers arcfour
44syn keyword sshconfigCiphers arcfour128
45syn keyword sshconfigCiphers arcfour256
46syn keyword sshconfigCiphers aes128-cbc
47syn keyword sshconfigCiphers aes192-cbc
48syn keyword sshconfigCiphers aes256-cbc
49syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
50syn keyword sshconfigCiphers aes128-ctr
51syn keyword sshconfigCiphers aes192-ctr
52syn keyword sshconfigCiphers aes256-ctr
53syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
54syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
55syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
56
57syn keyword sshconfigMAC hmac-sha1
58syn keyword sshconfigMAC mac-sha1-96
59syn keyword sshconfigMAC mac-sha2-256
60syn keyword sshconfigMAC mac-sha2-512
61syn keyword sshconfigMAC mac-md5
62syn keyword sshconfigMAC mac-md5-96
63syn keyword sshconfigMAC mac-ripemd160
64syn match sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010065syn match sshconfigMAC "\<umac-64@openssh\.com\>"
Bram Moolenaar328da0d2016-03-04 22:22:32 +010066syn match sshconfigMAC "\<umac-128@openssh\.com\>"
67syn match sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
68syn match sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
69syn match sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
70syn match sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
71syn match sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
72syn match sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
73syn match sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
74syn match sshconfigMAC "\<umac-64-etm@openssh\.com\>"
75syn match sshconfigMAC "\<umac-128-etm@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010076
Bram Moolenaar328da0d2016-03-04 22:22:32 +010077syn keyword sshconfigHostKeyAlgo ssh-ed25519
78syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
79syn keyword sshconfigHostKeyAlgo ssh-rsa
80syn keyword sshconfigHostKeyAlgo ssh-dss
81syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
82syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
83syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
84syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
85syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
86syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
87syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
88syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010089
90syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
Bram Moolenaar071d4272004-06-13 20:20:40 +000091syn keyword sshconfigPreferredAuth keyboard-interactive
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010092
Bram Moolenaar071d4272004-06-13 20:20:40 +000093syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
94syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
Bram Moolenaar5c736222010-01-06 20:54:52 +010095syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
96syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010097syn keyword sshconfigAddressFamily inet inet6
98
Bram Moolenaar345efa02016-01-15 20:57:49 +010099syn match sshconfigIPQoS "af1[123]"
100syn match sshconfigIPQoS "af2[123]"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100101syn match sshconfigIPQoS "af3[123]"
102syn match sshconfigIPQoS "af4[123]"
103syn match sshconfigIPQoS "cs[0-7]"
104syn keyword sshconfigIPQoS ef lowdelay throughput reliability
105syn keyword sshconfigKbdInteractive bsdauth pam skey
106
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100107syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
108syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
109syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
110syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
111syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
112syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
113syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
114syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100115
116syn keyword sshconfigTunnel point-to-point ethernet
117
118syn match sshconfigVar "%[rhplLdun]\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000119syn match sshconfigSpecial "[*?]"
120syn match sshconfigNumber "\d\+"
121syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
122syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
123syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100124syn match sshconfigHostPort "\(Host \)\@<=.\+"
125syn match sshconfigHostPort "\(HostName \)\@<=.\+"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100126
127" case off
128syn case ignore
129
130
Bram Moolenaar071d4272004-06-13 20:20:40 +0000131" Keywords
132syn keyword sshconfigHostSect Host
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100133
Bram Moolenaar256972a2015-12-29 19:10:25 +0100134syn keyword sshconfigMatch canonical exec host originalhost user localuser all
135
Bram Moolenaar5c736222010-01-06 20:54:52 +0100136syn keyword sshconfigKeyword AddressFamily
Bram Moolenaar939a1ab2016-04-10 01:31:25 +0200137syn keyword sshconfigKeyword AddKeysToAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100138syn keyword sshconfigKeyword BatchMode
139syn keyword sshconfigKeyword BindAddress
Bram Moolenaar345efa02016-01-15 20:57:49 +0100140syn keyword sshconfigKeyword CanonicalDomains
141syn keyword sshconfigKeyword CanonicalizeFallbackLocal
142syn keyword sshconfigKeyword CanonicalizeHostname
143syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100144syn keyword sshconfigKeyword CertificateFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100145syn keyword sshconfigKeyword ChallengeResponseAuthentication
146syn keyword sshconfigKeyword CheckHostIP
147syn keyword sshconfigKeyword Cipher
148syn keyword sshconfigKeyword Ciphers
149syn keyword sshconfigKeyword ClearAllForwardings
150syn keyword sshconfigKeyword Compression
151syn keyword sshconfigKeyword CompressionLevel
152syn keyword sshconfigKeyword ConnectTimeout
153syn keyword sshconfigKeyword ConnectionAttempts
154syn keyword sshconfigKeyword ControlMaster
155syn keyword sshconfigKeyword ControlPath
156syn keyword sshconfigKeyword ControlPersist
157syn keyword sshconfigKeyword DynamicForward
158syn keyword sshconfigKeyword EnableSSHKeysign
159syn keyword sshconfigKeyword EscapeChar
160syn keyword sshconfigKeyword ExitOnForwardFailure
161syn keyword sshconfigKeyword ForwardAgent
162syn keyword sshconfigKeyword ForwardX11
163syn keyword sshconfigKeyword ForwardX11Timeout
Bram Moolenaar5c736222010-01-06 20:54:52 +0100164syn keyword sshconfigKeyword ForwardX11Trusted
165syn keyword sshconfigKeyword GSSAPIAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100166syn keyword sshconfigKeyword GSSAPIClientIdentity
167syn keyword sshconfigKeyword GSSAPIDelegateCredentials
168syn keyword sshconfigKeyword GSSAPIKeyExchange
169syn keyword sshconfigKeyword GSSAPIRenewalForcesRekey
170syn keyword sshconfigKeyword GSSAPIServerIdentity
171syn keyword sshconfigKeyword GSSAPITrustDNS
172syn keyword sshconfigKeyword GSSAPITrustDns
173syn keyword sshconfigKeyword GatewayPorts
Bram Moolenaar5c736222010-01-06 20:54:52 +0100174syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100175syn keyword sshconfigKeyword HashKnownHosts
176syn keyword sshconfigKeyword HostKeyAlgorithms
177syn keyword sshconfigKeyword HostKeyAlias
178syn keyword sshconfigKeyword HostName
179syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaar256972a2015-12-29 19:10:25 +0100180syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100181syn keyword sshconfigKeyword IPQoS
182syn keyword sshconfigKeyword IdentitiesOnly
183syn keyword sshconfigKeyword IdentityFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100184syn keyword sshconfigKeyword IgnoreUnknown
Bram Moolenaarbc2eada2017-01-02 21:27:47 +0100185syn keyword sshconfigKeyword Include
Bram Moolenaar345efa02016-01-15 20:57:49 +0100186syn keyword sshconfigKeyword IPQoS
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100187syn keyword sshconfigKeyword KbdInteractiveAuthentication
188syn keyword sshconfigKeyword KbdInteractiveDevices
189syn keyword sshconfigKeyword KexAlgorithms
190syn keyword sshconfigKeyword LocalCommand
191syn keyword sshconfigKeyword LocalForward
192syn keyword sshconfigKeyword LogLevel
Bram Moolenaar5c736222010-01-06 20:54:52 +0100193syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100194syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100195syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
196syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100197syn keyword sshconfigKeyword PKCS11Provider
198syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100199syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100200syn keyword sshconfigKeyword Port
201syn keyword sshconfigKeyword PreferredAuthentications
202syn keyword sshconfigKeyword Protocol
203syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar09521312016-08-12 22:54:35 +0200204syn keyword sshconfigKeyword ProxyJump
Bram Moolenaar256972a2015-12-29 19:10:25 +0100205syn keyword sshconfigKeyword ProxyUseFDPass
206syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100207syn keyword sshconfigKeyword PubkeyAuthentication
208syn keyword sshconfigKeyword RSAAuthentication
209syn keyword sshconfigKeyword RekeyLimit
Bram Moolenaar8fe10002019-09-11 22:56:44 +0200210syn keyword sshconfigKeyword RemoteCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100211syn keyword sshconfigKeyword RemoteForward
212syn keyword sshconfigKeyword RequestTTY
Bram Moolenaar5c736222010-01-06 20:54:52 +0100213syn keyword sshconfigKeyword RhostsRSAAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100214syn keyword sshconfigKeyword SendEnv
215syn keyword sshconfigKeyword ServerAliveCountMax
216syn keyword sshconfigKeyword ServerAliveInterval
217syn keyword sshconfigKeyword SmartcardDevice
218syn keyword sshconfigKeyword StrictHostKeyChecking
219syn keyword sshconfigKeyword TCPKeepAlive
220syn keyword sshconfigKeyword Tunnel
221syn keyword sshconfigKeyword TunnelDevice
222syn keyword sshconfigKeyword UseBlacklistedKeys
223syn keyword sshconfigKeyword UsePrivilegedPort
224syn keyword sshconfigKeyword User
Bram Moolenaar5c736222010-01-06 20:54:52 +0100225syn keyword sshconfigKeyword UserKnownHostsFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100226syn keyword sshconfigKeyword UseRoaming
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100227syn keyword sshconfigKeyword VerifyHostKeyDNS
228syn keyword sshconfigKeyword VisualHostKey
Bram Moolenaar5c736222010-01-06 20:54:52 +0100229syn keyword sshconfigKeyword XAuthLocation
Bram Moolenaar071d4272004-06-13 20:20:40 +0000230
231" Define the default highlighting
Bram Moolenaar071d4272004-06-13 20:20:40 +0000232
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200233hi def link sshconfigComment Comment
234hi def link sshconfigTodo Todo
235hi def link sshconfigHostPort sshconfigConstant
236hi def link sshconfigNumber sshconfigConstant
237hi def link sshconfigConstant Constant
238hi def link sshconfigYesNo sshconfigEnum
239hi def link sshconfigCipher sshconfigEnum
240hi def link sshconfigCiphers sshconfigEnum
241hi def link sshconfigMAC sshconfigEnum
242hi def link sshconfigHostKeyAlgo sshconfigEnum
243hi def link sshconfigLogLevel sshconfigEnum
244hi def link sshconfigSysLogFacility sshconfigEnum
245hi def link sshconfigAddressFamily sshconfigEnum
246hi def link sshconfigIPQoS sshconfigEnum
247hi def link sshconfigKbdInteractive sshconfigEnum
248hi def link sshconfigKexAlgo sshconfigEnum
249hi def link sshconfigTunnel sshconfigEnum
250hi def link sshconfigPreferredAuth sshconfigEnum
251hi def link sshconfigVar sshconfigEnum
252hi def link sshconfigEnum Identifier
253hi def link sshconfigSpecial Special
254hi def link sshconfigKeyword Keyword
255hi def link sshconfigHostSect Type
256hi def link sshconfigMatch Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000257
258let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100259
260" vim:set ts=8 sw=2 sts=2: