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