mirror of
https://github.com/systemd/systemd.git
synced 2025-01-09 01:18:19 +03:00
0f6a6e2f2b
12264s [ 4819.948632] sshd[1365]: fatal: Missing privilege separation directory: /run/sshd 12264s [ 4819.952120] testsuite-74.sh[1362]: kex_exchange_identification: read: Connection reset by peer 12264s [ 4819.952120] testsuite-74.sh[1362]: Connection reset by /run/ssh-unix-local/socket port 0 https://autopkgtest.ubuntu.com/results/autopkgtest-jammy-upstream-systemd-ci-systemd-ci/jammy/amd64/s/systemd-upstream/20240113_093341_50fc7@/log.gz We copy binaries manually so some setups are missing, create the directory as needed
61 lines
1.9 KiB
Bash
Executable File
61 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
if ! command -v ssh &> /dev/null || ! command -v sshd &> /dev/null ; then
|
|
echo "ssh/sshd not found, skipping test." >&2
|
|
exit 0
|
|
fi
|
|
|
|
systemctl -q is-active sshd-unix-local.socket
|
|
|
|
if test -e /dev/vsock ; then
|
|
systemctl -q is-active sshd-vsock.socket
|
|
fi
|
|
|
|
if test -d /run/host/unix-export ; then
|
|
systemctl -q is-active sshd-unix-export.socket
|
|
fi
|
|
|
|
# FIXME: sshd seems to crash inside asan currently, skip the actual ssh test hence
|
|
if [[ -v ASAN_OPTIONS ]] ; then
|
|
exit 0
|
|
fi
|
|
|
|
ROOTID=$(mktemp -u)
|
|
# Needed on Ubuntu/Debian as we copy binaries manually
|
|
mkdir -p /run/sshd
|
|
|
|
removesshid() {
|
|
rm -f "$ROOTID" "$ROOTID".pub
|
|
}
|
|
|
|
ssh-keygen -N '' -C '' -t rsa -f "$ROOTID"
|
|
|
|
mkdir -p 0700 /root/.ssh
|
|
cat "$ROOTID".pub >> /root/.ssh/authorized_keys
|
|
|
|
# set root pw to "foo", just to set it to something valid
|
|
# shellcheck disable=SC2016
|
|
usermod -p '$5$AAy6BYJ6rzz.QELv$6LpVEU3/RQmVz.svHu/33qoJWWWzZuJ3DM2fo9JgcUD' root
|
|
usermod -U root
|
|
|
|
mkdir -p /etc/ssh
|
|
test -f /etc/ssh/ssh_host_rsa_key || ssh-keygen -t rsa -C '' -N '' -f /etc/ssh/ssh_host_rsa_key
|
|
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
|
|
echo "LogLevel DEBUG3" >> /etc/ssh/sshd_config
|
|
|
|
test -f /etc/ssh/ssh_config || echo 'Include /etc/ssh/ssh_config.d/*.conf' > /etc/ssh/ssh_config
|
|
|
|
# ssh wants this dir around, but distros cannot agree on a common name for it, let's just create all that are aware of distros use
|
|
mkdir -p /usr/share/empty.sshd /var/empty /var/empty/sshd
|
|
|
|
ssh -o StrictHostKeyChecking=no -v -i "$ROOTID" .host cat /etc/machine-id | cmp - /etc/machine-id
|
|
ssh -o StrictHostKeyChecking=no -v -i "$ROOTID" unix/run/ssh-unix-local/socket cat /etc/machine-id | cmp - /etc/machine-id
|
|
|
|
modprobe vsock_loopback ||:
|
|
if test -e /dev/vsock -a -d /sys/module/vsock_loopback ; then
|
|
ssh -o StrictHostKeyChecking=no -v -i "$ROOTID" vsock/1 cat /etc/machine-id | cmp - /etc/machine-id
|
|
fi
|