1" Vim syntax file
2" Language: OpenSSH server configuration file (sshd_config)
3" Maintainer: David Necas (Yeti) <[email protected]>
4" Last Change: 2009-07-09
5
6" Setup
7if version >= 600
8  if exists("b:current_syntax")
9    finish
10  endif
11else
12  syntax clear
13endif
14
15if version >= 600
16  setlocal iskeyword=_,-,a-z,A-Z,48-57
17else
18  set iskeyword=_,-,a-z,A-Z,48-57
19endif
20
21syn case ignore
22
23" Comments
24syn match sshdconfigComment "#.*$" contains=sshdconfigTodo
25syn keyword sshdconfigTodo TODO FIXME NOT contained
26
27" Constants
28syn keyword sshdconfigYesNo yes no none
29syn keyword sshdconfigAddressFamily any inet inet6
30syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
31syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
32syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
33syn keyword sshdconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
34syn keyword sshdconfigMAC hmac-md5-96
35syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
36syn keyword sshdconfigRootLogin without-password forced-commands-only
37syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
38syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
39syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
40syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
41syn match sshdconfigSpecial "[*?]"
42syn match sshdconfigNumber "\d\+"
43syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
44syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
45" FIXME: this matches quite a few things which are NOT valid IPv6 addresses
46syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>"
47syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>"
48
49" Keywords
50syn keyword sshdconfigMatch Host User Group Address
51syn keyword sshdconfigKeyword AcceptEnv AddressFamily AllowAgentForwarding
52syn keyword sshdconfigKeyword AllowGroups AllowTcpForwarding
53syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile
54syn keyword sshdconfigKeyword Banner
55syn keyword sshdconfigKeyword ChallengeResponseAuthentication ChrootDirectory
56syn keyword sshdconfigKeyword Ciphers ClientAliveCountMax
57syn keyword sshdconfigKeyword ClientAliveInterval Compression
58syn keyword sshdconfigKeyword DenyGroups DenyUsers
59syn keyword sshdconfigKeyword ForceCommand
60syn keyword sshdconfigKeyword GatewayPorts GSSAPIAuthentication
61syn keyword sshdconfigKeyword GSSAPICleanupCredentials
62syn keyword sshdconfigKeyword HostbasedAuthentication HostKey
63syn keyword sshdconfigKeyword IgnoreRhosts IgnoreUserKnownHosts
64syn keyword sshdconfigKeyword KerberosAuthentication KerberosGetAFSToken
65syn keyword sshdconfigKeyword KerberosOrLocalPasswd KerberosTicketCleanup
66syn keyword sshdconfigKeyword KeyRegenerationInterval
67syn keyword sshdconfigKeyword ListenAddress LoginGraceTime LogLevel
68syn keyword sshdconfigKeyword MACs Match MaxAuthTries MaxSessions MaxStartups
69syn keyword sshdconfigKeyword PasswordAuthentication PermitEmptyPasswords
70syn keyword sshdconfigKeyword PermitRootLogin PermitOpen PermitTunnel
71syn keyword sshdconfigKeyword PermitUserEnvironment PidFile Port
72syn keyword sshdconfigKeyword PrintLastLog PrintMotd Protocol
73syn keyword sshdconfigKeyword PubkeyAuthentication
74syn keyword sshdconfigKeyword RhostsRSAAuthentication RSAAuthentication
75syn keyword sshdconfigKeyword ServerKeyBits ShowPatchLevel StrictModes
76syn keyword sshdconfigKeyword Subsystem SyslogFacility
77syn keyword sshdconfigKeyword TCPKeepAlive
78syn keyword sshdconfigKeyword UseDNS UseLogin UsePAM UsePrivilegeSeparation
79syn keyword sshdconfigKeyword X11DisplayOffset X11Forwarding
80syn keyword sshdconfigKeyword X11UseLocalhost XAuthLocation
81
82" Define the default highlighting
83if version >= 508 || !exists("did_sshdconfig_syntax_inits")
84  if version < 508
85    let did_sshdconfig_syntax_inits = 1
86    command -nargs=+ HiLink hi link <args>
87  else
88    command -nargs=+ HiLink hi def link <args>
89  endif
90
91  HiLink sshdconfigComment        Comment
92  HiLink sshdconfigTodo           Todo
93  HiLink sshdconfigHostPort       sshdconfigConstant
94  HiLink sshdconfigTime           sshdconfigConstant
95  HiLink sshdconfigNumber         sshdconfigConstant
96  HiLink sshdconfigConstant       Constant
97  HiLink sshdconfigYesNo          sshdconfigEnum
98  HiLink sshdconfigAddressFamily  sshdconfigEnum
99  HiLink sshdconfigCipher         sshdconfigEnum
100  HiLink sshdconfigMAC            sshdconfigEnum
101  HiLink sshdconfigRootLogin      sshdconfigEnum
102  HiLink sshdconfigLogLevel       sshdconfigEnum
103  HiLink sshdconfigSysLogFacility sshdconfigEnum
104  HiLink sshdconfigEnum           Function
105  HiLink sshdconfigSpecial        Special
106  HiLink sshdconfigKeyword        Keyword
107  HiLink sshdconfigMatch          Type
108  delcommand HiLink
109endif
110
111let b:current_syntax = "sshdconfig"
112