Don't use ssh-keygen -A for init scripts
We are running into race conditions with glean, which ssh-keygen -A is not handling properly. So, create a new script to first check if the file exists, then use 'yes' to disable overwriting of existing files. Change-Id: Ie82e1e3f832fcc8f32c7e1335c5f0ee16d36f9a8 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
b0d72a3161
commit
18a664dd32
@ -1 +1,2 @@
|
|||||||
dib-init-system
|
dib-init-system
|
||||||
|
install-static
|
||||||
|
@ -2,19 +2,8 @@
|
|||||||
Description=OpenSSH Server Key Generation
|
Description=OpenSSH Server Key Generation
|
||||||
Before=ssh.service
|
Before=ssh.service
|
||||||
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_key
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_key.pub
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_dsa_key.pub
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key.pub
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key
|
|
||||||
ConditionPathExists=|!/etc/ssh/ssh_host_ed25519_key.pub
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/ssh-keygen -A
|
ExecStart=/usr/local/sbin/runtime-ssh-host-keys.sh
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
@ -5,4 +5,4 @@ console output
|
|||||||
|
|
||||||
task
|
task
|
||||||
|
|
||||||
exec /usr/bin/ssh-keygen -A
|
exec /usr/local/sbin/runtime-ssh-host-keys.sh
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2016 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
# dib-lint: disable=dibdebugtrace
|
||||||
|
|
||||||
|
set -exu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# We are running into race conditions with glean, which ssh-keygen -A is
|
||||||
|
# not handling properly. So, create a new script to first check if the
|
||||||
|
# file exists, then use 'yes' to disable overwriting of existing files.
|
||||||
|
|
||||||
|
for key in dsa ecdsa ed25519 rsa; do
|
||||||
|
FILE=/etc/ssh/ssh_host_${key}_key
|
||||||
|
if ! [ -e $FILE ]; then
|
||||||
|
/usr/bin/yes n | /usr/bin/ssh-keygen -f $FILE -N '' -t $key
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user