@xbrother2026/pkg-ssh10-5-rbc02 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # pkg.ssh10.5.rbc02
2
+
3
+ FAU RBC02 OpenSSH 10.5p1 升级包,供 FAU Doctor 使用。
package/README.txt ADDED
@@ -0,0 +1,14 @@
1
+ OPENSSH 10.5p1 升级包
2
+ 适用于:RBC02 / 彩虹C02 电池网关、资产条网关
3
+
4
+ 构建信息:
5
+ - ARMv5TE soft-float
6
+ - GCC 4.8.5
7
+ - OpenSSL 3.0.18 libcrypto.so.3 同目录共享,zlib 1.3.1 静态链接
8
+ - 随包提供 libatomic.so.1 和 libcrypt.so.1
9
+ - 程序与私有库安装到 /home/openssh,根分区只更新符号链接
10
+ - OpenSSH sandbox、PAM、SELinux、Kerberos 已关闭
11
+ - 目标程序最高使用 GLIBC_2.18 符号,并随包提供 libcrypt.so.1
12
+
13
+ 安装说明:
14
+ 升级完成后会延迟重启 sshd。升级过程中请勿断电或关闭升级工具。
package/config.toml ADDED
@@ -0,0 +1,20 @@
1
+ [info]
2
+ name = "ssh10.5p1"
3
+ compatible = ["FAU-C3000-PHY", "FAU-C3000-RJ45", "FAU-G3000", "FAU-A3000", "FAU-C3000-CN", "FAU-G3000-CN", "FAU-A3000-CN"]
4
+ tips = "安装过程不能断电!!最后会重启sshd服务。"
5
+ desc = "OpenSSH 10.5p1 for RBC02 (ARMv5, sandbox disabled)"
6
+
7
+ [[stage]]
8
+ updir = "/tmp/stage1"
9
+ keep = false
10
+ wait = 2
11
+
12
+ [[stage]]
13
+ updir = "/home/openssh10"
14
+ keep = true
15
+ wait = 5
16
+
17
+ [[stage]]
18
+ updir = "/tmp/stage1"
19
+ keep = false
20
+ wait = 1
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@xbrother2026/pkg-ssh10-5-rbc02",
3
+ "version": "1.0.0",
4
+ "description": "FAU RBC02 OpenSSH 10.5p1 upgrade package",
5
+ "license": "UNLICENSED",
6
+ "files": ["config.toml", "README.txt", "stage1/", "stage2/", "stage3/"],
7
+ "publishConfig": { "access": "public" },
8
+ "fauDoctor": {
9
+ "packageId": "pkg.ssh10.5.rbc02",
10
+ "displayName": "ssh10.5p1"
11
+ }
12
+ }
package/stage1/run.sh ADDED
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ PASSWD_ROOT="Xbrother@136"
5
+ SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
6
+ SCRIPT_PATH="$SCRIPT_DIR/$(basename -- "$0")"
7
+ OPENSSH_DIR_TEMP="/home/openssh10"
8
+
9
+ if [ "$(id -u)" -ne 0 ]; then
10
+ echo "Not running as root, switching to root using su..."
11
+ printf '%s\n' "$PASSWD_ROOT" | su -c "sh '$SCRIPT_PATH'" root
12
+ exit $?
13
+ fi
14
+
15
+ rm -rf "$OPENSSH_DIR_TEMP"
16
+ mkdir -p "$OPENSSH_DIR_TEMP"
17
+ chown xbrother:xbrother "$OPENSSH_DIR_TEMP"
18
+ chmod 755 "$OPENSSH_DIR_TEMP"
19
+ echo "Prepared $OPENSSH_DIR_TEMP"
Binary file
Binary file
Binary file
package/stage2/run.sh ADDED
@@ -0,0 +1,82 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ PASSWD_ROOT="Xbrother@136"
5
+ SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
6
+ SCRIPT_PATH="$SCRIPT_DIR/$(basename -- "$0")"
7
+ OPENSSH_DIR_TEMP="/home/openssh10"
8
+ OPENSSH_DIR="/home/openssh"
9
+ OPENSSH_PREVIOUS="/home/openssh.previous"
10
+
11
+ if [ "$(id -u)" -ne 0 ]; then
12
+ echo "Not running as root, switching to root using su..."
13
+ printf '%s\n' "$PASSWD_ROOT" | su -c "sh '$SCRIPT_PATH'" root
14
+ exit $?
15
+ fi
16
+
17
+ for payload in ssh sshd sshd-auth sshd-session libcrypto.so.3 libcrypt.so.1 \
18
+ libatomic.so.1; do
19
+ if [ ! -f "$SCRIPT_DIR/$payload" ]; then
20
+ echo "Missing stage2 payload: $payload" >&2
21
+ exit 1
22
+ fi
23
+ done
24
+ chmod 755 "$SCRIPT_DIR/ssh" "$SCRIPT_DIR/sshd" \
25
+ "$SCRIPT_DIR/sshd-auth" "$SCRIPT_DIR/sshd-session"
26
+ chmod 644 "$SCRIPT_DIR/libcrypto.so.3" "$SCRIPT_DIR/libcrypt.so.1" \
27
+ "$SCRIPT_DIR/libatomic.so.1"
28
+
29
+ mkdir -p /usr/libexec /var/empty
30
+ chown root:root /var/empty
31
+ chmod 755 /var/empty
32
+
33
+ version=$($SCRIPT_DIR/sshd -V 2>&1)
34
+ case "$version" in
35
+ OpenSSH_10.5p1,*) ;;
36
+ *)
37
+ echo "Unexpected sshd version: $version" >&2
38
+ exit 1
39
+ ;;
40
+ esac
41
+
42
+ if [ -f /etc/ssh/sshd_config ]; then
43
+ "$SCRIPT_DIR/sshd" -t -f /etc/ssh/sshd_config
44
+ fi
45
+
46
+ rm -rf "$OPENSSH_PREVIOUS"
47
+ if [ -e "$OPENSSH_DIR" ]; then
48
+ mv "$OPENSSH_DIR" "$OPENSSH_PREVIOUS"
49
+ fi
50
+ if ! mv "$OPENSSH_DIR_TEMP" "$OPENSSH_DIR"; then
51
+ [ ! -e "$OPENSSH_PREVIOUS" ] || mv "$OPENSSH_PREVIOUS" "$OPENSSH_DIR"
52
+ exit 1
53
+ fi
54
+ chown -R root:root "$OPENSSH_DIR"
55
+ chmod 755 "$OPENSSH_DIR"
56
+ chmod 755 "$OPENSSH_DIR/ssh" "$OPENSSH_DIR/sshd" \
57
+ "$OPENSSH_DIR/sshd-auth" "$OPENSSH_DIR/sshd-session"
58
+ chmod 644 "$OPENSSH_DIR/libcrypto.so.3" "$OPENSSH_DIR/libcrypt.so.1" \
59
+ "$OPENSSH_DIR/libatomic.so.1"
60
+
61
+ ln -sfn "$OPENSSH_DIR/sshd" /usr/sbin/sshd
62
+ ln -sfn "$OPENSSH_DIR/ssh" /usr/bin/ssh
63
+ ln -sfn "$OPENSSH_DIR/sshd-session" /usr/libexec/sshd-session
64
+ ln -sfn "$OPENSSH_DIR/sshd-auth" /usr/libexec/sshd-auth
65
+ sync
66
+
67
+ (
68
+ sleep 3
69
+ echo "Restarting SSH service..."
70
+ killall sshd 2>/dev/null || true
71
+ killall sshd-session 2>/dev/null || true
72
+ if ! /etc/init.d/S50sshd start; then
73
+ if [ -d "$OPENSSH_PREVIOUS" ]; then
74
+ rm -rf "$OPENSSH_DIR"
75
+ mv "$OPENSSH_PREVIOUS" "$OPENSSH_DIR"
76
+ /etc/init.d/S50sshd start
77
+ fi
78
+ fi
79
+ ) </dev/null >/dev/null 2>&1 &
80
+
81
+ echo "$version"
82
+ exit 0
package/stage2/ssh ADDED
Binary file
package/stage2/sshd ADDED
Binary file
Binary file
Binary file
package/stage3/run.sh ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ version=$(/usr/sbin/sshd -V 2>&1)
5
+ echo "$version"
6
+ case "$version" in
7
+ OpenSSH_10.5p1,*) exit 0 ;;
8
+ *) exit 1 ;;
9
+ esac