update 04
This commit is contained in:
@@ -31,16 +31,23 @@ else
|
||||
echo "已存在 SSH 密钥,跳过生成"
|
||||
fi
|
||||
|
||||
# ===== 阶段二:推送公钥到飞牛 NAS =====
|
||||
# ===== 阶段二:检测远程是否能免密,首次登录提示手动输入密码 =====
|
||||
echo "== [2/2] 推送公钥到飞牛 NAS =="
|
||||
|
||||
echo "⚠️ 如果是首次登录,可能需要输入飞牛用户密码并确认 host key"
|
||||
# 尝试用公钥免密登录
|
||||
ssh -o BatchMode=yes "$USER_NAME@$NAS_IP" "echo '免密测试成功'" >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "⚠️ 检测到首次登录,需手动输入密码并确认 host key"
|
||||
echo "请在提示时输入密码,完成一次手动登录,然后再运行脚本即可实现免密"
|
||||
echo "你可以先运行: ssh $USER_NAME@$NAS_IP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检测远程 HOME 并创建 ~/.ssh(第一次会要求密码)
|
||||
ssh -t "$USER_NAME@$NAS_IP" << 'EOF'
|
||||
# 远程操作:创建 .ssh 目录及权限
|
||||
ssh "$USER_NAME@$NAS_IP" << 'EOF'
|
||||
set -e
|
||||
|
||||
# 使用远程真实 HOME(飞牛可能不是 /home/username)
|
||||
# 使用远程真实 HOME
|
||||
HOME_DIR="$HOME"
|
||||
SSH_DIR="$HOME_DIR/.ssh"
|
||||
AUTH_KEYS="$SSH_DIR/authorized_keys"
|
||||
@@ -48,12 +55,11 @@ AUTH_KEYS="$SSH_DIR/authorized_keys"
|
||||
mkdir -p "$SSH_DIR"
|
||||
chmod 700 "$SSH_DIR"
|
||||
|
||||
# 确保 authorized_keys 文件存在
|
||||
touch "$AUTH_KEYS"
|
||||
chmod 600 "$AUTH_KEYS"
|
||||
EOF
|
||||
|
||||
# 写入公钥到远程 authorized_keys
|
||||
# 推送公钥到远程 authorized_keys
|
||||
cat "$PUB_KEY" | ssh "$USER_NAME@$NAS_IP" "cat >> ~/.ssh/authorized_keys"
|
||||
|
||||
echo "✅ SSH 公钥已成功推送:$USER_NAME@$NAS_IP"
|
||||
|
||||
Reference in New Issue
Block a user