diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-11-06 14:22:11 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-11-06 14:22:11 -0800 |
commit | 1c0e75890bc02e85754ed0e1d8d83252871734d0 (patch) | |
tree | e81d7913f86a3d60d9e137c56e6eaecbbbeda0b1 | |
parent | fdab2e3a0a1f9bc658df46a2a29bccb8aa5b0f05 (diff) | |
download | vyatta-cfg-system-1c0e75890bc02e85754ed0e1d8d83252871734d0.tar.gz vyatta-cfg-system-1c0e75890bc02e85754ed0e1d8d83252871734d0.zip |
Don't restart sshd if not needed
If configuration doesn't change (ie during boot), then do not
need to restart sshd. Also use newer format configuration file
syntax.
-rw-r--r-- | templates/service/ssh/node.def | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/templates/service/ssh/node.def b/templates/service/ssh/node.def index fbb29687..585357dd 100644 --- a/templates/service/ssh/node.def +++ b/templates/service/ssh/node.def @@ -1,17 +1,18 @@ help: Enable/disable Secure SHell (SSH) protocol -delete:expression: "sudo /usr/sbin/invoke-rc.d ssh stop && \ - sudo sh -c \"echo 'SSHD_OPTS=' > /etc/default/ssh\" " -end:expression: "if [ -z \"$VAR(port/@)\" ]; then exit 0; fi; \ - sudo sh -c \ - \"[ -f /etc/ssh/ssh_host_key ] \ - || sudo ssh-keygen -t rsa1 -N '' -f /etc/ssh/ssh_host_key\"; \ - case \"$VAR(protocol-version/@)\" in \ - v2) VER=2;; \ - v1) VER=1;; \ - all) VER=\"1,2\";; \ - *) VER=2;; \ - esac; \ - STR=\"SSHD_OPTS=\\\"-p $VAR(port/@) -o HostKey=/etc/ssh/ssh_host_key \ --o Protocol=${VER}\\\"\"; \ - sudo sh -c \"echo '$STR' > /etc/default/ssh\"; \ - sudo /usr/sbin/invoke-rc.d ssh restart" +delete:sudo /usr/sbin/invoke-rc.d ssh stop + sudo sh -c "echo 'SSHD_OPTS=' > /etc/default/ssh" +end: if [ -z "$VAR(port/@)" ]; then exit 0; fi; + if [ ! -f /etc/ssh/ssh_host_key ]; then + sudo ssh-keygen -q -t rsa1 -N '' -f /etc/ssh/ssh_host_key + fi + case $VAR(protocol-version/@) in + v2) VER=2;; + v1) VER=1;; + all) VER="1,2";; + *) VER=2;; + esac; + STR="SSHD_OPTS=\"-p $VAR(port/@) -o Hostkey=/etc/ssh/ssh_host_key -o Protocol=${VER}\"" + if ! grep -q -s "^$STR" /etc/default/ssh; then + sudo sh -c "echo '$STR' > /etc/default/ssh" + sudo /usr/sbin/invoke-rc.d ssh restart + fi |