summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Ssh.hs
diff options
context:
space:
mode:
authorJoey Hess2014-08-21 14:04:26 -0400
committerJoey Hess2014-08-21 14:04:26 -0400
commit3822c9a2d764a2ea451d4dce8862eef7dc697c12 (patch)
tree46337aad64f208798a68989367b9bad1bae325b4 /src/Propellor/Property/Ssh.hs
parentceb56ac32b777fd0949af94bc41ea749f93552ef (diff)
propellor spin
Diffstat (limited to 'src/Propellor/Property/Ssh.hs')
-rw-r--r--src/Propellor/Property/Ssh.hs18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/Propellor/Property/Ssh.hs b/src/Propellor/Property/Ssh.hs
index 5a260476..41b93089 100644
--- a/src/Propellor/Property/Ssh.hs
+++ b/src/Propellor/Property/Ssh.hs
@@ -9,7 +9,8 @@ module Propellor.Property.Ssh (
hostKey,
keyImported,
knownHost,
- authorizedKeys
+ authorizedKeys,
+ listenPort
) where
import Propellor
@@ -164,3 +165,18 @@ authorizedKeys user context = withPrivData (SshAuthorizedKeys user) context $ \g
[ File.ownerGroup f user user
, File.ownerGroup (takeDirectory f) user user
]
+
+-- | Makes the ssh server listen on a given port, in addition to any other
+-- ports it is configured to listen on.
+--
+-- Revert to prevent it listening on a particular port.
+listenPort :: Int -> RevertableProperty
+listenPort port = RevertableProperty enable disable
+ where
+ portline = "Port " ++ show port
+ enable = sshdConfig `File.containsLine` portline
+ `describe` ("ssh listening on " ++ portline)
+ `onChange` restartSshd
+ disable = sshdConfig `File.lacksLine` portline
+ `describe` ("ssh not listening on " ++ portline)
+ `onChange` restartSshd