1" Vim syntax file
2" Language:	OpenSSH server configuration file (sshd_config)
3" Author:	David Necas (Yeti)
4" Maintainer:	Dominik Fischer <d dot f dot fischer at web dot de>
5" Contributor:	Thilo Six
6" Contributor:  Leonard Ehrenfried <[email protected]>
7" Contributor:  Karsten Hopp <[email protected]>
8" Originally:	2009-07-09
9" Last Change:	2016 Jan 12
10" SSH Version:	7.1
11"
12
13" Setup
14if version >= 600
15  if exists("b:current_syntax")
16    finish
17  endif
18else
19  syntax clear
20endif
21
22if version >= 600
23  setlocal iskeyword=_,-,a-z,A-Z,48-57
24else
25  set iskeyword=_,-,a-z,A-Z,48-57
26endif
27
28
29" case on
30syn case match
31
32
33" Comments
34syn match sshdconfigComment "^#.*$" contains=sshdconfigTodo
35syn match sshdconfigComment "\s#.*$" contains=sshdconfigTodo
36
37syn keyword sshdconfigTodo TODO FIXME NOTE contained
38
39" Constants
40syn keyword sshdconfigYesNo yes no none
41
42syn keyword sshdconfigAddressFamily any inet inet6
43
44syn keyword sshdconfigPrivilegeSeparation sandbox
45
46syn keyword sshdconfigTcpForwarding local remote
47
48syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
49
50syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
51syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr
52syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
53
54syn keyword sshdconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
55syn keyword sshdconfigMAC hmac-md5-96
56syn keyword sshdconfigMAC hmac-sha2-256 hmac-sha256-96 hmac-sha2-512
57syn keyword sshdconfigMAC hmac-sha2-512-96
58syn match   sshdconfigMAC "\<umac-64@openssh\.com\>"
59
60syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only
61
62syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
63syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
64syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
65syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
66
67syn keyword sshdconfigCompression    delayed
68
69syn match   sshdconfigIPQoS	"af1[123]"
70syn match   sshdconfigIPQoS	"af2[123]"
71syn match   sshdconfigIPQoS	"af3[123]"
72syn match   sshdconfigIPQoS	"af4[123]"
73syn match   sshdconfigIPQoS	"cs[0-7]"
74syn keyword sshdconfigIPQoS	ef lowdelay throughput reliability
75
76syn keyword sshdconfigKexAlgo	ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521
77syn keyword sshdconfigKexAlgo	diffie-hellman-group-exchange-sha256
78syn keyword sshdconfigKexAlgo	diffie-hellman-group-exchange-sha1
79syn keyword sshdconfigKexAlgo	diffie-hellman-group14-sha1
80syn keyword sshdconfigKexAlgo	diffie-hellman-group1-sha1
81
82syn keyword sshdconfigTunnel	point-to-point ethernet
83
84syn keyword sshdconfigSubsystem internal-sftp
85
86syn match sshdconfigVar	    "%[hu]\>"
87syn match sshdconfigVar	    "%%"
88
89syn match sshdconfigSpecial "[*?]"
90
91syn match sshdconfigNumber "\d\+"
92syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
93syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
94" FIXME: this matches quite a few things which are NOT valid IPv6 addresses
95syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>"
96syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>"
97
98
99" case off
100syn case ignore
101
102
103" Keywords
104syn keyword sshdconfigMatch Host User Group Address
105
106syn keyword sshdconfigKeyword AcceptEnv
107syn keyword sshdconfigKeyword AddressFamily
108syn keyword sshdconfigKeyword AllowAgentForwarding
109syn keyword sshdconfigKeyword AllowGroups
110syn keyword sshdconfigKeyword AllowStreamLocalForwarding
111syn keyword sshdconfigKeyword AllowTcpForwarding
112syn keyword sshdconfigKeyword AllowUsers
113syn keyword sshdconfigKeyword AuthenticationMethods
114syn keyword sshdconfigKeyword AuthorizedKeysFile
115syn keyword sshdconfigKeyword AuthorizedKeysCommand
116syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
117syn keyword sshdconfigKeyword AuthorizedPrincipalsFile
118syn keyword sshdconfigKeyword Banner
119syn keyword sshdconfigKeyword ChallengeResponseAuthentication
120syn keyword sshdconfigKeyword ChrootDirectory
121syn keyword sshdconfigKeyword Ciphers
122syn keyword sshdconfigKeyword ClientAliveCountMax
123syn keyword sshdconfigKeyword ClientAliveInterval
124syn keyword sshdconfigKeyword Compression
125syn keyword sshdconfigKeyword DebianBanner
126syn keyword sshdconfigKeyword DenyGroups
127syn keyword sshdconfigKeyword DenyUsers
128syn keyword sshdconfigKeyword ForceCommand
129syn keyword sshdconfigKeyword GSSAPIAuthentication
130syn keyword sshdconfigKeyword GSSAPICleanupCredentials
131syn keyword sshdconfigKeyword GSSAPIKeyExchange
132syn keyword sshdconfigKeyword GSSAPIStoreCredentialsOnRekey
133syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck
134syn keyword sshdconfigKeyword GatewayPorts
135syn keyword sshdconfigKeyword HostCertificate
136syn keyword sshdconfigKeyword HostKey
137syn keyword sshdconfigKeyword HostKeyAgent
138syn keyword sshdconfigKeyword HostKeyAlgorithms
139syn keyword sshdconfigKeyword HostbasedAcceptedKeyTypes
140syn keyword sshdconfigKeyword HostbasedAuthentication
141syn keyword sshdconfigKeyword HostbasedUsesNameFromPacketOnly
142syn keyword sshdconfigKeyword IPQoS
143syn keyword sshdconfigKeyword IgnoreRhosts
144syn keyword sshdconfigKeyword IgnoreUserKnownHosts
145syn keyword sshdconfigKeyword KbdInteractiveAuthentication
146syn keyword sshdconfigKeyword KerberosAuthentication
147syn keyword sshdconfigKeyword KerberosGetAFSToken
148syn keyword sshdconfigKeyword KerberosOrLocalPasswd
149syn keyword sshdconfigKeyword KerberosTicketCleanup
150syn keyword sshdconfigKeyword KexAlgorithms
151syn keyword sshdconfigKeyword KeyRegenerationInterval
152syn keyword sshdconfigKeyword ListenAddress
153syn keyword sshdconfigKeyword LogLevel
154syn keyword sshdconfigKeyword LoginGraceTime
155syn keyword sshdconfigKeyword MACs
156syn keyword sshdconfigKeyword Match
157syn keyword sshdconfigKeyword MaxAuthTries
158syn keyword sshdconfigKeyword MaxSessions
159syn keyword sshdconfigKeyword MaxStartups
160syn keyword sshdconfigKeyword PasswordAuthentication
161syn keyword sshdconfigKeyword PermitBlacklistedKeys
162syn keyword sshdconfigKeyword PermitEmptyPasswords
163syn keyword sshdconfigKeyword PermitOpen
164syn keyword sshdconfigKeyword PermitRootLogin
165syn keyword sshdconfigKeyword PermitTTY
166syn keyword sshdconfigKeyword PermitTunnel
167syn keyword sshdconfigKeyword PermitUserEnvironment
168syn keyword sshdconfigKeyword PermitUserRC
169syn keyword sshdconfigKeyword PidFile
170syn keyword sshdconfigKeyword Port
171syn keyword sshdconfigKeyword PrintLastLog
172syn keyword sshdconfigKeyword PrintMotd
173syn keyword sshdconfigKeyword Protocol
174syn keyword sshdconfigKeyword PubkeyAcceptedKeyTypes
175syn keyword sshdconfigKeyword PubkeyAuthentication
176syn keyword sshdconfigKeyword RSAAuthentication
177syn keyword sshdconfigKeyword RekeyLimit
178syn keyword sshdconfigKeyword RevokedKeys
179syn keyword sshdconfigKeyword RhostsRSAAuthentication
180syn keyword sshdconfigKeyword ServerKeyBits
181syn keyword sshdconfigKeyword ShowPatchLevel
182syn keyword sshdconfigKeyword StrictModes
183syn keyword sshdconfigKeyword Subsystem
184syn keyword sshdconfigKeyword SyslogFacility
185syn keyword sshdconfigKeyword TCPKeepAlive
186syn keyword sshdconfigKeyword TrustedUserCAKeys
187syn keyword sshdconfigKeyword UseDNS
188syn keyword sshdconfigKeyword UseLogin
189syn keyword sshdconfigKeyword UsePAM
190syn keyword sshdconfigKeyword UsePrivilegeSeparation
191syn keyword sshdconfigKeyword VersionAddendum
192syn keyword sshdconfigKeyword X11DisplayOffset
193syn keyword sshdconfigKeyword X11Forwarding
194syn keyword sshdconfigKeyword X11UseLocalhost
195syn keyword sshdconfigKeyword XAuthLocation
196
197
198" Define the default highlighting
199if version >= 508 || !exists("did_sshdconfig_syntax_inits")
200  if version < 508
201    let did_sshdconfig_syntax_inits = 1
202    command -nargs=+ HiLink hi link <args>
203  else
204    command -nargs=+ HiLink hi def link <args>
205  endif
206
207  HiLink sshdconfigComment              Comment
208  HiLink sshdconfigTodo                 Todo
209  HiLink sshdconfigHostPort             sshdconfigConstant
210  HiLink sshdconfigTime                 sshdconfigConstant
211  HiLink sshdconfigNumber               sshdconfigConstant
212  HiLink sshdconfigConstant             Constant
213  HiLink sshdconfigYesNo                sshdconfigEnum
214  HiLink sshdconfigAddressFamily        sshdconfigEnum
215  HiLink sshdconfigPrivilegeSeparation  sshdconfigEnum
216  HiLink sshdconfigTcpForwarding        sshdconfigEnum
217  HiLink sshdconfigRootLogin            sshdconfigEnum
218  HiLink sshdconfigCipher               sshdconfigEnum
219  HiLink sshdconfigMAC                  sshdconfigEnum
220  HiLink sshdconfigRootLogin            sshdconfigEnum
221  HiLink sshdconfigLogLevel             sshdconfigEnum
222  HiLink sshdconfigSysLogFacility       sshdconfigEnum
223  HiLink sshdconfigVar                  sshdconfigEnum
224  HiLink sshdconfigCompression          sshdconfigEnum
225  HiLink sshdconfigIPQoS                sshdconfigEnum
226  HiLink sshdconfigKexAlgo              sshdconfigEnum
227  HiLink sshdconfigTunnel               sshdconfigEnum
228  HiLink sshdconfigSubsystem            sshdconfigEnum
229  HiLink sshdconfigEnum                 Function
230  HiLink sshdconfigSpecial              Special
231  HiLink sshdconfigKeyword              Keyword
232  HiLink sshdconfigMatch                Type
233  delcommand HiLink
234endif
235
236let b:current_syntax = "sshdconfig"
237
238" vim:set ts=8 sw=2 sts=2:
239