diff --git a/push-sshkey-to-fnos.sh b/push-sshkey-to-fnos.sh index 2a9a267..badbc74 100644 --- a/push-sshkey-to-fnos.sh +++ b/push-sshkey-to-fnos.sh @@ -34,11 +34,13 @@ fi # ===== 阶段二:推送公钥到飞牛 NAS ===== echo "== [2/2] 推送公钥到飞牛 NAS ==" -# 第一次连接:创建 ~/.ssh 并设置权限(不使用 sudo,不假设 /home) -ssh "$USER_NAME@$NAS_IP" << 'EOF' +echo "⚠️ 如果是首次登录,可能需要输入飞牛用户密码并确认 host key" + +# 检测远程 HOME 并创建 ~/.ssh(第一次会要求密码) +ssh -t "$USER_NAME@$NAS_IP" << 'EOF' set -e -# 使用真实 HOME +# 使用远程真实 HOME(飞牛可能不是 /home/username) HOME_DIR="$HOME" SSH_DIR="$HOME_DIR/.ssh" AUTH_KEYS="$SSH_DIR/authorized_keys" @@ -46,13 +48,13 @@ AUTH_KEYS="$SSH_DIR/authorized_keys" mkdir -p "$SSH_DIR" chmod 700 "$SSH_DIR" +# 确保 authorized_keys 文件存在 touch "$AUTH_KEYS" chmod 600 "$AUTH_KEYS" EOF -# 写入公钥(真正推 key 的关键一步) -cat "$PUB_KEY" | ssh "$USER_NAME@$NAS_IP" \ -"cat >> ~/.ssh/authorized_keys" +# 写入公钥到远程 authorized_keys +cat "$PUB_KEY" | ssh "$USER_NAME@$NAS_IP" "cat >> ~/.ssh/authorized_keys" echo "✅ SSH 公钥已成功推送:$USER_NAME@$NAS_IP" echo "ℹ️ 以后可直接免密登录(ssh $USER_NAME@$NAS_IP)"