#!/bin/sh # sshd # Source functions library source /etc/rc.d/init.d/functions source /etc/sysconfig/network/network-parameters log_script_name "$0 $*" DAEMON="/usr/sbin/sshd" DAEMON_DESC="SSH server" DAEMON_OPTS="-4" KEYLEN_BITS=4096 # Check if SSH server is desired if [ "x${SSH_SERVER_ENA}" != "xyes" -a "x${SSH_SERVER_ENA}" != "xYes" -a "x${SSH_SERVER_ENA}" != "xYES" ]; then exit ${EXIT_CODE_SUCCESS} fi gen_keys() { if [ ! -e /etc/ssh/ssh_host_rsa_key ] ; then echo "Generating RSA hostkey..." /usr/bin/ssh-keygen -t rsa -b ${KEYLEN_BITS} -f /etc/ssh/ssh_host_rsa_key -N '' fi if [ ! -e /etc/ssh/ssh_host_ed25519_key ] ; then echo "Generating Ed25519 hostkey..." /usr/bin/ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' fi } sshd_start() { # Checking configuration if [ ! -e /etc/ssh/sshd_config ] ; then echo "You need an /etc/ssh/sshd_config file to run sshd" echo "There is a sample file in /usr/share/doc/openssh" exit ${EXIT_CODE_FAILURE} fi gen_keys if [ $? -ne 0 ]; then exit ${EXIT_CODE_FAILURE} else loadproc ${DAEMON} ${DAEMON_OPTS} fi } # See how we were called case "$1" in start) cmd_run_log_box_warn "${DAEMON_DESC} start" sshd_start ;; stop) cmd_run_log_box_warn "${DAEMON_DESC} stop" killproc ${DAEMON} ;; reload) reloadproc ${DAEMON} ;; restart) $0 stop sleep 1 $0 start ;; status) statusproc ${DAEMON} ;; *) echo "Usage: $0 {reload|restart|start|status|stop}" exit ${EXIT_CODE_FAILURE} ;; esac exit $?