Print this page
use ssh-keygen -A for openssh host key generation
openssh smf method script should use /bin/sh
It's probably not a good idea to source smf_include from a different
shell than what it was written for.
don't depend on pidfiles in openssh refresh
generate ed25519 host keys for openssh

Split Close
Expand all
Collapse all
          --- old/build/openssh/method-sshd
          +++ new/build/openssh/method-sshd
   1      -#!/bin/bash
        1 +#!/bin/sh
   2    2  
   3    3  # SMF method script for OpenSSH server
   4    4  # Copyright 2013 OmniTI Computer Consulting, Inc.  All rights reserved.
   5    5  # Use is subject to license terms.
   6    6  #
   7    7  
   8    8  . /lib/svc/share/smf_include.sh
   9    9  
  10   10  CONFDIR=/etc/ssh
  11      -PIDFILE=/var/run/sshd.pid
  12   11  
  13      -create_host_key() {
  14      -    TYPE=$1
  15      -    FILE=$2
  16      -    /usr/bin/ssh-keygen -t $TYPE -N '' -f $FILE || \
  17      -        exit $SMF_EXIT_ERR_CONFIG
  18      -}
       12 +[ -x /usr/sbin/sshd ] || exit $SMF_EXIT_ERR_FATAL
  19   13  
  20      -[[ -x /usr/sbin/sshd ]] || exit $SMF_EXIT_ERR_FATAL
  21      -
  22   14  case $1 in
  23   15      "start")
  24      -        [[ -f $CONFDIR/ssh_host_dsa_key ]] || create_host_key dsa $CONFDIR/ssh_host_dsa_key
  25      -        [[ -f $CONFDIR/ssh_host_rsa_key ]] || create_host_key rsa $CONFDIR/ssh_host_rsa_key
  26      -        [[ -f $CONFDIR/ssh_host_ecdsa_key ]] || create_host_key ecdsa $CONFDIR/ssh_host_ecdsa_key
       16 +        /usr/bin/ssh-keygen -A || exit $SMF_EXIT_ERR_FATAL
  27   17          /usr/sbin/sshd
  28      -        ;;
  29      -    "restart")
  30      -        if [[ -f $PIDFILE ]]; then
  31      -            /usr/bin/kill -HUP `/usr/bin/cat $PIDFILE`
  32      -        fi
  33      -        ;;
       18 +        ;;
  34   19  esac        
  35   20  
  36   21  exit $SMF_EXIT_OK
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX