39 lines
1.2 KiB
Bash
39 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
# 把 usbnet 共用的 authorized_keys 同步到几处常见 root SSH 目录,
|
|
# 避免不同 sshd/dropbear 读取路径不一致。
|
|
|
|
TS="$(date +%Y%m%d-%H%M%S 2>/dev/null || echo now)"
|
|
OUT_DIR="/mnt/us/ssh-debug/${TS}"
|
|
LOG_FILE="${OUT_DIR}/fix-all-keys.log"
|
|
SOURCE_KEYS="/mnt/us/usbnet/etc/authorized_keys"
|
|
|
|
mkdir -p "${OUT_DIR}"
|
|
exec >"${LOG_FILE}" 2>&1
|
|
|
|
ROOT_HOME="$(awk -F: '/^root:/{print $6}' /etc/passwd 2>/dev/null || true)"
|
|
[ -n "${ROOT_HOME}" ] || ROOT_HOME="/tmp/root"
|
|
|
|
echo "Root home: ${ROOT_HOME}"
|
|
echo "Source keys: ${SOURCE_KEYS}"
|
|
|
|
for target_dir in "${ROOT_HOME}/.ssh" /root/.ssh /var/local/root/.ssh /mnt/us/usbnet/etc/dot.ssh; do
|
|
echo "--- target: ${target_dir} ---"
|
|
mkdir -p "${target_dir}"
|
|
if [ -f "${target_dir}/authorized_keys" ]; then
|
|
cp "${target_dir}/authorized_keys" "${target_dir}/authorized_keys.bak.${TS}" || true
|
|
fi
|
|
cp "${SOURCE_KEYS}" "${target_dir}/authorized_keys"
|
|
chmod 700 "${target_dir}" 2>/dev/null || true
|
|
chmod 600 "${target_dir}/authorized_keys" 2>/dev/null || true
|
|
ls -ld "${target_dir}" "${target_dir}/authorized_keys" 2>/dev/null || true
|
|
done
|
|
|
|
killall -HUP sshd 2>/dev/null || true
|
|
|
|
echo
|
|
echo "=== DONE ==="
|
|
echo "${OUT_DIR}"
|