#!/system/bin/sh
# lssh —— 免密登录服务器（密钥在 /data/adb/locamcp-mcp/ssh/ ✓ 刷模块不会丢 ✓）
# 用法: lssh root@IP "命令"
# ★ 2026-09-30 修两个坑：
#   ① 旧版是 `ssh ... "$@" && exit 0`：远程命令返回非 0 时会拿【第二把钥匙】再试一遍 ✗
#      → 输出里冒出 "Permission denied, please try again." + "Permission denied (publickey)"
#      → 害人以为第一把钥匙坏了 ✗✗（实际第一把是好的 ✓）
#      现在：只有当 ssh 自己失败（返回 255 = 连不上/认证不过）才换钥匙 ✓
#            已经连上并执行完的（任何其它返回码）原样透传 ✓
#   ② 第二把钥匙路径原来用 $HOME，Termux 里 HOME 没设时会展开成 //.ssh/id_ed25519 ✗
#      → 改成写死的绝对路径 ✓
K1=/data/adb/locamcp-mcp/ssh/id_ed25519
K2=/data/data/com.termux/files/home/.ssh/id_ed25519
OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=15 -o LogLevel=ERROR"
SSH=""
for c in /product/bin/ssh /system/bin/ssh /data/data/com.termux/files/usr/bin/ssh /data/data/com.termux/files/usr/bin/dropbear; do
  [ -x "$c" ] && SSH="$c" && break
done
[ -z "$SSH" ] && SSH=ssh
for k in "$K1" "$K2"; do
  [ -f "$k" ] || continue
  "$SSH" -i "$k" $OPTS "$@"
  rc=$?
  [ "$rc" -ne 255 ] && exit $rc
done
"$SSH" $OPTS "$@"
exit $?
