blob: ae3c7dd8cc1b8cc057ed1655ddc05ae2464205f9 [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 Moolenaardad44732021-03-31 20:07:33 +02004" Maintainer: Jakub Jelen <jakuje at gmail dot com>
5" Previous Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
Bram Moolenaar345efa02016-01-15 20:57:49 +01006" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
7" Contributor: Karsten Hopp <karsten@redhat.com>
Bram Moolenaar09521312016-08-12 22:54:35 +02008" Contributor: Dean, Adam Kenneth <adam.ken.dean@hpe.com>
Bram Moolenaardad44732021-03-31 20:07:33 +02009" Last Change: 2021 Mar 29
Bram Moolenaar8fe10002019-09-11 22:56:44 +020010" Added RemoteCommand from pull request #4809
Bram Moolenaarebdf3c92020-02-15 21:41:42 +010011" Included additional keywords from Martin.
Bram Moolenaardad44732021-03-31 20:07:33 +020012" SSH Version: 8.5p1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010013"
Bram Moolenaar071d4272004-06-13 20:20:40 +000014
15" Setup
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020016" quit when a syntax file was already loaded
17if exists("b:current_syntax")
18 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000019endif
20
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020021setlocal iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010023
24" case on
25syn case match
26
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
28" Comments
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010029syn match sshconfigComment "^#.*$" contains=sshconfigTodo
30syn match sshconfigComment "\s#.*$" contains=sshconfigTodo
31
32syn keyword sshconfigTodo TODO FIXME NOTE contained
33
Bram Moolenaar071d4272004-06-13 20:20:40 +000034
35" Constants
Bram Moolenaar939a1ab2016-04-10 01:31:25 +020036syn keyword sshconfigYesNo yes no ask confirm
Bram Moolenaar5c736222010-01-06 20:54:52 +010037syn keyword sshconfigYesNo any auto
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010038syn keyword sshconfigYesNo force autoask none
39
Bram Moolenaar328da0d2016-03-04 22:22:32 +010040syn keyword sshconfigCipher 3des blowfish
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010041
Bram Moolenaar328da0d2016-03-04 22:22:32 +010042syn keyword sshconfigCiphers 3des-cbc
43syn keyword sshconfigCiphers blowfish-cbc
44syn keyword sshconfigCiphers cast128-cbc
45syn keyword sshconfigCiphers arcfour
46syn keyword sshconfigCiphers arcfour128
47syn keyword sshconfigCiphers arcfour256
48syn keyword sshconfigCiphers aes128-cbc
49syn keyword sshconfigCiphers aes192-cbc
50syn keyword sshconfigCiphers aes256-cbc
51syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
52syn keyword sshconfigCiphers aes128-ctr
53syn keyword sshconfigCiphers aes192-ctr
54syn keyword sshconfigCiphers aes256-ctr
55syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
56syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
57syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
58
59syn keyword sshconfigMAC hmac-sha1
60syn keyword sshconfigMAC mac-sha1-96
61syn keyword sshconfigMAC mac-sha2-256
62syn keyword sshconfigMAC mac-sha2-512
63syn keyword sshconfigMAC mac-md5
64syn keyword sshconfigMAC mac-md5-96
65syn keyword sshconfigMAC mac-ripemd160
66syn match sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010067syn match sshconfigMAC "\<umac-64@openssh\.com\>"
Bram Moolenaar328da0d2016-03-04 22:22:32 +010068syn match sshconfigMAC "\<umac-128@openssh\.com\>"
69syn match sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
70syn match sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
71syn match sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
72syn match sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
73syn match sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
74syn match sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
75syn match sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
76syn match sshconfigMAC "\<umac-64-etm@openssh\.com\>"
77syn match sshconfigMAC "\<umac-128-etm@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010078
Bram Moolenaar328da0d2016-03-04 22:22:32 +010079syn keyword sshconfigHostKeyAlgo ssh-ed25519
80syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
81syn keyword sshconfigHostKeyAlgo ssh-rsa
82syn keyword sshconfigHostKeyAlgo ssh-dss
83syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
84syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
85syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
86syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
87syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
88syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
89syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
90syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010091
92syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
Bram Moolenaar071d4272004-06-13 20:20:40 +000093syn keyword sshconfigPreferredAuth keyboard-interactive
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010094
Bram Moolenaar071d4272004-06-13 20:20:40 +000095syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
96syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
Bram Moolenaar5c736222010-01-06 20:54:52 +010097syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
98syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010099syn keyword sshconfigAddressFamily inet inet6
100
Bram Moolenaar345efa02016-01-15 20:57:49 +0100101syn match sshconfigIPQoS "af1[123]"
102syn match sshconfigIPQoS "af2[123]"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100103syn match sshconfigIPQoS "af3[123]"
104syn match sshconfigIPQoS "af4[123]"
105syn match sshconfigIPQoS "cs[0-7]"
106syn keyword sshconfigIPQoS ef lowdelay throughput reliability
107syn keyword sshconfigKbdInteractive bsdauth pam skey
108
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100109syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
110syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
111syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
112syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
113syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
114syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
115syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
116syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100117
118syn keyword sshconfigTunnel point-to-point ethernet
119
120syn match sshconfigVar "%[rhplLdun]\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000121syn match sshconfigSpecial "[*?]"
122syn match sshconfigNumber "\d\+"
123syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
124syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
125syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100126syn match sshconfigHostPort "\(Host \)\@<=.\+"
127syn match sshconfigHostPort "\(HostName \)\@<=.\+"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100128
129" case off
130syn case ignore
131
132
Bram Moolenaar071d4272004-06-13 20:20:40 +0000133" Keywords
134syn keyword sshconfigHostSect Host
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100135
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100136syn keyword sshconfigMatch canonical final exec host originalhost user localuser all
Bram Moolenaar256972a2015-12-29 19:10:25 +0100137
Bram Moolenaar5c736222010-01-06 20:54:52 +0100138syn keyword sshconfigKeyword AddressFamily
Bram Moolenaar939a1ab2016-04-10 01:31:25 +0200139syn keyword sshconfigKeyword AddKeysToAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100140syn keyword sshconfigKeyword BatchMode
141syn keyword sshconfigKeyword BindAddress
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100142syn keyword sshconfigKeyword BindInterface
Bram Moolenaar345efa02016-01-15 20:57:49 +0100143syn keyword sshconfigKeyword CanonicalDomains
144syn keyword sshconfigKeyword CanonicalizeFallbackLocal
145syn keyword sshconfigKeyword CanonicalizeHostname
146syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100147syn keyword sshconfigKeyword CanonicalizePermittedCNAMEs
148syn keyword sshconfigKeyword CASignatureAlgorithms
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
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100152syn keyword sshconfigKeyword Ciphers
153syn keyword sshconfigKeyword ClearAllForwardings
154syn keyword sshconfigKeyword Compression
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100155syn keyword sshconfigKeyword ConnectTimeout
156syn keyword sshconfigKeyword ConnectionAttempts
157syn keyword sshconfigKeyword ControlMaster
158syn keyword sshconfigKeyword ControlPath
159syn keyword sshconfigKeyword ControlPersist
160syn keyword sshconfigKeyword DynamicForward
161syn keyword sshconfigKeyword EnableSSHKeysign
162syn keyword sshconfigKeyword EscapeChar
163syn keyword sshconfigKeyword ExitOnForwardFailure
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100164syn keyword sshconfigKeyword FingerprintHash
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100165syn 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 GSSAPIDelegateCredentials
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100171syn keyword sshconfigKeyword GatewayPorts
Bram Moolenaar5c736222010-01-06 20:54:52 +0100172syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100173syn keyword sshconfigKeyword HashKnownHosts
174syn keyword sshconfigKeyword HostKeyAlgorithms
175syn keyword sshconfigKeyword HostKeyAlias
176syn keyword sshconfigKeyword HostName
177syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaardad44732021-03-31 20:07:33 +0200178syn keyword sshconfigKeyword HostbasedAcceptedAlgorithms
Bram Moolenaar256972a2015-12-29 19:10:25 +0100179syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100180syn keyword sshconfigKeyword IPQoS
181syn keyword sshconfigKeyword IdentitiesOnly
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100182syn keyword sshconfigKeyword IdentityAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100183syn 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
Bram Moolenaardad44732021-03-31 20:07:33 +0200190syn keyword sshconfigKeyword KnownHostsCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100191syn keyword sshconfigKeyword LocalCommand
192syn keyword sshconfigKeyword LocalForward
193syn keyword sshconfigKeyword LogLevel
Bram Moolenaardad44732021-03-31 20:07:33 +0200194syn keyword sshconfigKeyword LogVerbose
Bram Moolenaar5c736222010-01-06 20:54:52 +0100195syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100196syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100197syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
198syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100199syn keyword sshconfigKeyword PKCS11Provider
200syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100201syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaardad44732021-03-31 20:07:33 +0200202syn keyword sshconfigKeyword PermitRemoteOpen
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100203syn keyword sshconfigKeyword Port
204syn keyword sshconfigKeyword PreferredAuthentications
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100205syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar09521312016-08-12 22:54:35 +0200206syn keyword sshconfigKeyword ProxyJump
Bram Moolenaar256972a2015-12-29 19:10:25 +0100207syn keyword sshconfigKeyword ProxyUseFDPass
Bram Moolenaardad44732021-03-31 20:07:33 +0200208syn keyword sshconfigKeyword PubkeyAcceptedAlgorithms
Bram Moolenaar256972a2015-12-29 19:10:25 +0100209syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100210syn keyword sshconfigKeyword PubkeyAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100211syn keyword sshconfigKeyword RekeyLimit
Bram Moolenaar8fe10002019-09-11 22:56:44 +0200212syn keyword sshconfigKeyword RemoteCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100213syn keyword sshconfigKeyword RemoteForward
214syn keyword sshconfigKeyword RequestTTY
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100215syn keyword sshconfigKeyword RevokedHostKeys
216syn keyword sshconfigKeyword SecurityKeyProvider
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100217syn keyword sshconfigKeyword SendEnv
218syn keyword sshconfigKeyword ServerAliveCountMax
219syn keyword sshconfigKeyword ServerAliveInterval
220syn keyword sshconfigKeyword SmartcardDevice
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100221syn keyword sshconfigKeyword SetEnv
222syn keyword sshconfigKeyword StreamLocalBindMask
223syn keyword sshconfigKeyword StreamLocalBindUnlink
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100224syn keyword sshconfigKeyword StrictHostKeyChecking
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100225syn keyword sshconfigKeyword SyslogFacility
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100226syn keyword sshconfigKeyword TCPKeepAlive
227syn keyword sshconfigKeyword Tunnel
228syn keyword sshconfigKeyword TunnelDevice
229syn keyword sshconfigKeyword UseBlacklistedKeys
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100230syn keyword sshconfigKeyword UpdateHostKeys
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100231syn keyword sshconfigKeyword User
Bram Moolenaar5c736222010-01-06 20:54:52 +0100232syn keyword sshconfigKeyword UserKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100233syn keyword sshconfigKeyword VerifyHostKeyDNS
234syn keyword sshconfigKeyword VisualHostKey
Bram Moolenaar5c736222010-01-06 20:54:52 +0100235syn keyword sshconfigKeyword XAuthLocation
Bram Moolenaar071d4272004-06-13 20:20:40 +0000236
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100237" Deprecated/ignored/remove/unsupported keywords
238
239syn keyword sshConfigDeprecated Cipher
240syn keyword sshconfigDeprecated GSSAPIClientIdentity
241syn keyword sshconfigDeprecated GSSAPIKeyExchange
242syn keyword sshconfigDeprecated GSSAPIRenewalForcesRekey
243syn keyword sshconfigDeprecated GSSAPIServerIdentity
244syn keyword sshconfigDeprecated GSSAPITrustDNS
245syn keyword sshconfigDeprecated GSSAPITrustDns
246syn keyword sshconfigDeprecated Protocol
247syn keyword sshconfigDeprecated RSAAuthentication
248syn keyword sshconfigDeprecated RhostsRSAAuthentication
249syn keyword sshconfigDeprecated CompressionLevel
250syn keyword sshconfigDeprecated UseRoaming
251syn keyword sshconfigDeprecated UsePrivilegedPort
252
Bram Moolenaar071d4272004-06-13 20:20:40 +0000253" Define the default highlighting
Bram Moolenaar071d4272004-06-13 20:20:40 +0000254
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200255hi def link sshconfigComment Comment
256hi def link sshconfigTodo Todo
257hi def link sshconfigHostPort sshconfigConstant
258hi def link sshconfigNumber sshconfigConstant
259hi def link sshconfigConstant Constant
260hi def link sshconfigYesNo sshconfigEnum
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100261hi def link sshconfigCipher sshconfigDeprecated
262hi def link sshconfigCiphers sshconfigEnum
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200263hi def link sshconfigMAC sshconfigEnum
264hi def link sshconfigHostKeyAlgo sshconfigEnum
265hi def link sshconfigLogLevel sshconfigEnum
266hi def link sshconfigSysLogFacility sshconfigEnum
267hi def link sshconfigAddressFamily sshconfigEnum
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100268hi def link sshconfigIPQoS sshconfigEnum
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200269hi def link sshconfigKbdInteractive sshconfigEnum
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100270hi def link sshconfigKexAlgo sshconfigEnum
271hi def link sshconfigTunnel sshconfigEnum
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200272hi def link sshconfigPreferredAuth sshconfigEnum
273hi def link sshconfigVar sshconfigEnum
274hi def link sshconfigEnum Identifier
275hi def link sshconfigSpecial Special
276hi def link sshconfigKeyword Keyword
277hi def link sshconfigHostSect Type
278hi def link sshconfigMatch Type
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100279hi def link sshconfigDeprecated Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000280
281let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100282
283" vim:set ts=8 sw=2 sts=2: