blob: d0752aebcb1e8e36d90200f19b302053781007c7 [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 Moolenaarebdf3c92020-02-15 21:41:42 +01008" Last Change: 2020 Feb 12
Bram Moolenaar8fe10002019-09-11 22:56:44 +02009" Added RemoteCommand from pull request #4809
Bram Moolenaarebdf3c92020-02-15 21:41:42 +010010" Included additional keywords from Martin.
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010011" SSH Version: 7.4p1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010012"
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
14" Setup
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020015" quit when a syntax file was already loaded
16if exists("b:current_syntax")
17 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000018endif
19
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020020setlocal iskeyword=_,-,a-z,A-Z,48-57
Bram Moolenaar071d4272004-06-13 20:20:40 +000021
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010022
23" case on
24syn case match
25
Bram Moolenaar071d4272004-06-13 20:20:40 +000026
27" Comments
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010028syn match sshconfigComment "^#.*$" contains=sshconfigTodo
29syn match sshconfigComment "\s#.*$" contains=sshconfigTodo
30
31syn keyword sshconfigTodo TODO FIXME NOTE contained
32
Bram Moolenaar071d4272004-06-13 20:20:40 +000033
34" Constants
Bram Moolenaar939a1ab2016-04-10 01:31:25 +020035syn keyword sshconfigYesNo yes no ask confirm
Bram Moolenaar5c736222010-01-06 20:54:52 +010036syn keyword sshconfigYesNo any auto
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010037syn keyword sshconfigYesNo force autoask none
38
Bram Moolenaar328da0d2016-03-04 22:22:32 +010039syn keyword sshconfigCipher 3des blowfish
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010040
Bram Moolenaar328da0d2016-03-04 22:22:32 +010041syn keyword sshconfigCiphers 3des-cbc
42syn keyword sshconfigCiphers blowfish-cbc
43syn keyword sshconfigCiphers cast128-cbc
44syn keyword sshconfigCiphers arcfour
45syn keyword sshconfigCiphers arcfour128
46syn keyword sshconfigCiphers arcfour256
47syn keyword sshconfigCiphers aes128-cbc
48syn keyword sshconfigCiphers aes192-cbc
49syn keyword sshconfigCiphers aes256-cbc
50syn match sshconfigCiphers "\<rijndael-cbc@lysator\.liu.se\>"
51syn keyword sshconfigCiphers aes128-ctr
52syn keyword sshconfigCiphers aes192-ctr
53syn keyword sshconfigCiphers aes256-ctr
54syn match sshconfigCiphers "\<aes128-gcm@openssh\.com\>"
55syn match sshconfigCiphers "\<aes256-gcm@openssh\.com\>"
56syn match sshconfigCiphers "\<chacha20-poly1305@openssh\.com\>"
57
58syn keyword sshconfigMAC hmac-sha1
59syn keyword sshconfigMAC mac-sha1-96
60syn keyword sshconfigMAC mac-sha2-256
61syn keyword sshconfigMAC mac-sha2-512
62syn keyword sshconfigMAC mac-md5
63syn keyword sshconfigMAC mac-md5-96
64syn keyword sshconfigMAC mac-ripemd160
65syn match sshconfigMAC "\<hmac-ripemd160@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010066syn match sshconfigMAC "\<umac-64@openssh\.com\>"
Bram Moolenaar328da0d2016-03-04 22:22:32 +010067syn match sshconfigMAC "\<umac-128@openssh\.com\>"
68syn match sshconfigMAC "\<hmac-sha1-etm@openssh\.com\>"
69syn match sshconfigMAC "\<hmac-sha1-96-etm@openssh\.com\>"
70syn match sshconfigMAC "\<hmac-sha2-256-etm@openssh\.com\>"
71syn match sshconfigMAC "\<hmac-sha2-512-etm@openssh\.com\>"
72syn match sshconfigMAC "\<hmac-md5-etm@openssh\.com\>"
73syn match sshconfigMAC "\<hmac-md5-96-etm@openssh\.com\>"
74syn match sshconfigMAC "\<hmac-ripemd160-etm@openssh\.com\>"
75syn match sshconfigMAC "\<umac-64-etm@openssh\.com\>"
76syn match sshconfigMAC "\<umac-128-etm@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010077
Bram Moolenaar328da0d2016-03-04 22:22:32 +010078syn keyword sshconfigHostKeyAlgo ssh-ed25519
79syn match sshconfigHostKeyAlgo "\<ssh-ed25519-cert-v01@openssh\.com\>"
80syn keyword sshconfigHostKeyAlgo ssh-rsa
81syn keyword sshconfigHostKeyAlgo ssh-dss
82syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256
83syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384
84syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521
85syn match sshconfigHostKeyAlgo "\<ssh-rsa-cert-v01@openssh\.com\>"
86syn match sshconfigHostKeyAlgo "\<ssh-dss-cert-v01@openssh\.com\>"
87syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp256-cert-v01@openssh\.com\>"
88syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp384-cert-v01@openssh\.com\>"
89syn match sshconfigHostKeyAlgo "\<ecdsa-sha2-nistp521-cert-v01@openssh\.com\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010090
91syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic
Bram Moolenaar071d4272004-06-13 20:20:40 +000092syn keyword sshconfigPreferredAuth keyboard-interactive
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010093
Bram Moolenaar071d4272004-06-13 20:20:40 +000094syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
95syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
Bram Moolenaar5c736222010-01-06 20:54:52 +010096syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
97syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010098syn keyword sshconfigAddressFamily inet inet6
99
Bram Moolenaar345efa02016-01-15 20:57:49 +0100100syn match sshconfigIPQoS "af1[123]"
101syn match sshconfigIPQoS "af2[123]"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100102syn match sshconfigIPQoS "af3[123]"
103syn match sshconfigIPQoS "af4[123]"
104syn match sshconfigIPQoS "cs[0-7]"
105syn keyword sshconfigIPQoS ef lowdelay throughput reliability
106syn keyword sshconfigKbdInteractive bsdauth pam skey
107
Bram Moolenaar328da0d2016-03-04 22:22:32 +0100108syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1
109syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1
110syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1
111syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256
112syn keyword sshconfigKexAlgo ecdh-sha2-nistp256
113syn keyword sshconfigKexAlgo ecdh-sha2-nistp384
114syn keyword sshconfigKexAlgo ecdh-sha2-nistp521
115syn match sshconfigKexAlgo "\<curve25519-sha256@libssh\.org\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100116
117syn keyword sshconfigTunnel point-to-point ethernet
118
119syn match sshconfigVar "%[rhplLdun]\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000120syn match sshconfigSpecial "[*?]"
121syn match sshconfigNumber "\d\+"
122syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
123syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
124syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>"
Bram Moolenaardb7207e2012-02-22 17:30:19 +0100125syn match sshconfigHostPort "\(Host \)\@<=.\+"
126syn match sshconfigHostPort "\(HostName \)\@<=.\+"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100127
128" case off
129syn case ignore
130
131
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132" Keywords
133syn keyword sshconfigHostSect Host
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100134
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100135syn keyword sshconfigMatch canonical final exec host originalhost user localuser all
Bram Moolenaar256972a2015-12-29 19:10:25 +0100136
Bram Moolenaar5c736222010-01-06 20:54:52 +0100137syn keyword sshconfigKeyword AddressFamily
Bram Moolenaar939a1ab2016-04-10 01:31:25 +0200138syn keyword sshconfigKeyword AddKeysToAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100139syn keyword sshconfigKeyword BatchMode
140syn keyword sshconfigKeyword BindAddress
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100141syn keyword sshconfigKeyword BindInterface
Bram Moolenaar345efa02016-01-15 20:57:49 +0100142syn keyword sshconfigKeyword CanonicalDomains
143syn keyword sshconfigKeyword CanonicalizeFallbackLocal
144syn keyword sshconfigKeyword CanonicalizeHostname
145syn keyword sshconfigKeyword CanonicalizeMaxDots
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100146syn keyword sshconfigKeyword CanonicalizePermittedCNAMEs
147syn keyword sshconfigKeyword CASignatureAlgorithms
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
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100151syn keyword sshconfigKeyword Ciphers
152syn keyword sshconfigKeyword ClearAllForwardings
153syn keyword sshconfigKeyword Compression
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100154syn keyword sshconfigKeyword ConnectTimeout
155syn keyword sshconfigKeyword ConnectionAttempts
156syn keyword sshconfigKeyword ControlMaster
157syn keyword sshconfigKeyword ControlPath
158syn keyword sshconfigKeyword ControlPersist
159syn keyword sshconfigKeyword DynamicForward
160syn keyword sshconfigKeyword EnableSSHKeysign
161syn keyword sshconfigKeyword EscapeChar
162syn keyword sshconfigKeyword ExitOnForwardFailure
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100163syn keyword sshconfigKeyword FingerprintHash
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100164syn keyword sshconfigKeyword ForwardAgent
165syn keyword sshconfigKeyword ForwardX11
166syn keyword sshconfigKeyword ForwardX11Timeout
Bram Moolenaar5c736222010-01-06 20:54:52 +0100167syn keyword sshconfigKeyword ForwardX11Trusted
168syn keyword sshconfigKeyword GSSAPIAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100169syn keyword sshconfigKeyword GSSAPIDelegateCredentials
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100170syn keyword sshconfigKeyword GatewayPorts
Bram Moolenaar5c736222010-01-06 20:54:52 +0100171syn keyword sshconfigKeyword GlobalKnownHostsFile
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100172syn keyword sshconfigKeyword HashKnownHosts
173syn keyword sshconfigKeyword HostKeyAlgorithms
174syn keyword sshconfigKeyword HostKeyAlias
175syn keyword sshconfigKeyword HostName
176syn keyword sshconfigKeyword HostbasedAuthentication
Bram Moolenaar256972a2015-12-29 19:10:25 +0100177syn keyword sshconfigKeyword HostbasedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100178syn keyword sshconfigKeyword IPQoS
179syn keyword sshconfigKeyword IdentitiesOnly
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100180syn keyword sshconfigKeyword IdentityAgent
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100181syn keyword sshconfigKeyword IdentityFile
Bram Moolenaar345efa02016-01-15 20:57:49 +0100182syn keyword sshconfigKeyword IgnoreUnknown
Bram Moolenaarbc2eada2017-01-02 21:27:47 +0100183syn keyword sshconfigKeyword Include
Bram Moolenaar345efa02016-01-15 20:57:49 +0100184syn keyword sshconfigKeyword IPQoS
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100185syn keyword sshconfigKeyword KbdInteractiveAuthentication
186syn keyword sshconfigKeyword KbdInteractiveDevices
187syn keyword sshconfigKeyword KexAlgorithms
188syn keyword sshconfigKeyword LocalCommand
189syn keyword sshconfigKeyword LocalForward
190syn keyword sshconfigKeyword LogLevel
Bram Moolenaar5c736222010-01-06 20:54:52 +0100191syn keyword sshconfigKeyword MACs
Bram Moolenaar256972a2015-12-29 19:10:25 +0100192syn keyword sshconfigKeyword Match
Bram Moolenaar5c736222010-01-06 20:54:52 +0100193syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
194syn keyword sshconfigKeyword NumberOfPasswordPrompts
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100195syn keyword sshconfigKeyword PKCS11Provider
196syn keyword sshconfigKeyword PasswordAuthentication
Bram Moolenaar5c736222010-01-06 20:54:52 +0100197syn keyword sshconfigKeyword PermitLocalCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100198syn keyword sshconfigKeyword Port
199syn keyword sshconfigKeyword PreferredAuthentications
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100200syn keyword sshconfigKeyword ProxyCommand
Bram Moolenaar09521312016-08-12 22:54:35 +0200201syn keyword sshconfigKeyword ProxyJump
Bram Moolenaar256972a2015-12-29 19:10:25 +0100202syn keyword sshconfigKeyword ProxyUseFDPass
203syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100204syn keyword sshconfigKeyword PubkeyAuthentication
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100205syn keyword sshconfigKeyword RekeyLimit
Bram Moolenaar8fe10002019-09-11 22:56:44 +0200206syn keyword sshconfigKeyword RemoteCommand
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100207syn keyword sshconfigKeyword RemoteForward
208syn keyword sshconfigKeyword RequestTTY
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100209syn keyword sshconfigKeyword RevokedHostKeys
210syn keyword sshconfigKeyword SecurityKeyProvider
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100211syn keyword sshconfigKeyword SendEnv
212syn keyword sshconfigKeyword ServerAliveCountMax
213syn keyword sshconfigKeyword ServerAliveInterval
214syn keyword sshconfigKeyword SmartcardDevice
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100215syn keyword sshconfigKeyword SetEnv
216syn keyword sshconfigKeyword StreamLocalBindMask
217syn keyword sshconfigKeyword StreamLocalBindUnlink
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100218syn keyword sshconfigKeyword StrictHostKeyChecking
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100219syn keyword sshconfigKeyword SyslogFacility
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100220syn keyword sshconfigKeyword TCPKeepAlive
221syn keyword sshconfigKeyword Tunnel
222syn keyword sshconfigKeyword TunnelDevice
223syn keyword sshconfigKeyword UseBlacklistedKeys
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100224syn keyword sshconfigKeyword UpdateHostKeys
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100225syn keyword sshconfigKeyword User
Bram Moolenaar5c736222010-01-06 20:54:52 +0100226syn keyword sshconfigKeyword UserKnownHostsFile
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
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100231" Deprecated/ignored/remove/unsupported keywords
232
233syn keyword sshConfigDeprecated Cipher
234syn keyword sshconfigDeprecated GSSAPIClientIdentity
235syn keyword sshconfigDeprecated GSSAPIKeyExchange
236syn keyword sshconfigDeprecated GSSAPIRenewalForcesRekey
237syn keyword sshconfigDeprecated GSSAPIServerIdentity
238syn keyword sshconfigDeprecated GSSAPITrustDNS
239syn keyword sshconfigDeprecated GSSAPITrustDns
240syn keyword sshconfigDeprecated Protocol
241syn keyword sshconfigDeprecated RSAAuthentication
242syn keyword sshconfigDeprecated RhostsRSAAuthentication
243syn keyword sshconfigDeprecated CompressionLevel
244syn keyword sshconfigDeprecated UseRoaming
245syn keyword sshconfigDeprecated UsePrivilegedPort
246
Bram Moolenaar071d4272004-06-13 20:20:40 +0000247" Define the default highlighting
Bram Moolenaar071d4272004-06-13 20:20:40 +0000248
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200249hi def link sshconfigComment Comment
250hi def link sshconfigTodo Todo
251hi def link sshconfigHostPort sshconfigConstant
252hi def link sshconfigNumber sshconfigConstant
253hi def link sshconfigConstant Constant
254hi def link sshconfigYesNo sshconfigEnum
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100255hi def link sshconfigCipher sshconfigDeprecated
256hi def link sshconfigCiphers sshconfigEnum
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200257hi def link sshconfigMAC sshconfigEnum
258hi def link sshconfigHostKeyAlgo sshconfigEnum
259hi def link sshconfigLogLevel sshconfigEnum
260hi def link sshconfigSysLogFacility sshconfigEnum
261hi def link sshconfigAddressFamily sshconfigEnum
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100262hi def link sshconfigIPQoS sshconfigEnum
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200263hi def link sshconfigKbdInteractive sshconfigEnum
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100264hi def link sshconfigKexAlgo sshconfigEnum
265hi def link sshconfigTunnel sshconfigEnum
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200266hi def link sshconfigPreferredAuth sshconfigEnum
267hi def link sshconfigVar sshconfigEnum
268hi def link sshconfigEnum Identifier
269hi def link sshconfigSpecial Special
270hi def link sshconfigKeyword Keyword
271hi def link sshconfigHostSect Type
272hi def link sshconfigMatch Type
Bram Moolenaarebdf3c92020-02-15 21:41:42 +0100273hi def link sshconfigDeprecated Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000274
275let b:current_syntax = "sshconfig"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100276
277" vim:set ts=8 sw=2 sts=2: