最后一班

This commit is contained in:
吕新雨
2026-02-03 01:22:25 +08:00
parent 7fea799087
commit ccdc6350a1

View File

@@ -130,21 +130,28 @@ jobs:
# 进一步校验OpenSSH 私钥中间的 base64 块是否可解码(不输出内容)
if grep -q '^-----BEGIN OPENSSH PRIVATE KEY-----$' "${SSH_KEY_PATH}" && grep -q '^-----END OPENSSH PRIVATE KEY-----$' "${SSH_KEY_PATH}"; then
OPENSSH_B64_LEN="$(awk '
BEGIN{in=0; n=0}
/^-----BEGIN OPENSSH PRIVATE KEY-----$/{in=1; next}
/^-----END OPENSSH PRIVATE KEY-----$/{in=0; exit}
in==1{gsub(/\r/,""); n+=length($0)}
END{print n}
' "${SSH_KEY_PATH}")"
echo "OpenSSH base64 块字符数(合计):${OPENSSH_B64_LEN}"
# 注意:不要用变量名 in是 awk 关键字,部分实现会报语法错)
OPENSSH_B64_LEN="$(
awk '
BEGIN{in_block=0; n=0}
/^-----BEGIN OPENSSH PRIVATE KEY-----$/{in_block=1; next}
/^-----END OPENSSH PRIVATE KEY-----$/{in_block=0; exit}
in_block==1{gsub(/\r/,""); n+=length($0)}
END{print n}
' "${SSH_KEY_PATH}" 2>/dev/null || true
)"
if [[ -n "${OPENSSH_B64_LEN:-}" ]]; then
echo "OpenSSH base64 块字符数(合计):${OPENSSH_B64_LEN}"
fi
# 该校验仅用于提示,不应阻断部署流程
if ! awk '
BEGIN{in=0}
/^-----BEGIN OPENSSH PRIVATE KEY-----$/{in=1; next}
/^-----END OPENSSH PRIVATE KEY-----$/{in=0; exit}
in==1{gsub(/\r/,""); print}
' "${SSH_KEY_PATH}" | tr -d '\n' | base64 -d >/dev/null 2>&1; then
echo "OpenSSH 私钥的 base64 块无法解码疑似内容被截断/损坏(即使首尾行还在)。"
BEGIN{in_block=0}
/^-----BEGIN OPENSSH PRIVATE KEY-----$/{in_block=1; next}
/^-----END OPENSSH PRIVATE KEY-----$/{in_block=0; exit}
in_block==1{gsub(/\r/,""); print}
' "${SSH_KEY_PATH}" 2>/dev/null | tr -d '\n' | base64 -d >/dev/null 2>&1; then
echo "提示:OpenSSH 私钥的 base64 块无法解码疑似内容被截断/损坏),将继续执行 ssh-keygen 校验定位。"
fi
fi