1

So I have an ubuntu vm with ssh set up. Pallet can ssh in, install packages and run scripts which is handy dandy; however, how do I configure my sshd_config using pallet?

pallet.crate.ssh-key has a nice function aptly named config that configures ~/.ssh/config. It takes a map and updates values in the file accordingly. Very nice but what do I use for sshd_config?

I see https://github.com/pallet/ssh-crate but it's not available on clojars and doesn't have a perfect config function equivalent. What do I use or am I not looking at ssh-crate correctly?

deadghost
  • 5,017
  • 3
  • 34
  • 46

1 Answers1

0

As of Nov 23 2014, the package is not available on clojars for whatever reason.

Note: Pallet will check the md5 hash after the first write and will error if you try lifting again after manually making local changes. This can be worked around with remote-file with :content and :overwrite-changes true instead of using ssh-crate. See https://github.com/pallet/pallet/blob/develop/src/pallet/actions.clj#L398.

To install: run $ git clone https://github.com/pallet/ssh-crate.git on the command line. $ cd ssh-crate and $ lein install.

To use:

Include the dependency in your project.clj:

:dependencies [[com.palletops/ssh-crate "0.8.0-SNAPSHOT"]]

In your somename.clj file:

(ns my.namespace
  (:require [pallet.crate.ssh :as ssh]))

(def sshd-config
  (ssh/server-spec
   {:sshd-config
    {"PasswordAuthentication" "no"
    "PermitRootLogin" "no"
    "AllowUsers" "myuser"
    "Protocol" 2
    "Port" 12345
    "IgnoreRhosts" "yes"
    "HostbasedAuthentication" "no"
    "PermitEmptyPasswords" "no"
    "LogLevel" "INFO"}}))

Use pallet.api/lift on sshd-config to apply configuration.

deadghost
  • 5,017
  • 3
  • 34
  • 46