分類: 未分類

  • UG

    UG(Siemens NX)中开启自适应自下而上切削需要的环境变量名称是UGII_CAM_ENABLE_ADAPTIVE_BOTTOM_UP_CUTTING。 [1]

    环境变量详情

    • 变量名:UGII_CAM_ENABLE_ADAPTIVE_BOTTOM_UP_CUTTING
    • 变量值:1 [1, 2]

    版本说明与使用方法

    • NX 12.0.2.9 及特定低版本:如果在软件中找不到自下而上切削功能,需要手动在电脑的系统环境变量中添加上述变量,并将值设为 1,然后重新启动软件。
    • NX 1847 及更高版本:这些新版本自带该功能,系统默认已经集成,不需要再添加任何环境变量。直接在自适应铣削策略界面中查看即可。 [1, 2, 3]
  • 把 VPS 的 SSH 密钥托管在 GitHub 上

    巧用 GitHub 管理 VPS SSH 登录公钥:从手动导入到自动化同步

    每次开新 VPS 都要手动生成、复制粘贴长长一串公钥?更换主力设备或重装系统时,还要挨个登入每台机器更新 authorized_keys?

    其实 GitHub 早就提供了一个公开接口:任何公开账户绑定的 SSH 公钥,都可以通过固定 URL 直接读取:

    Plaintext

    https://github.com/<你的GitHub用户名>.keys
    

    利用这一特性,我们可以将 GitHub 作为公钥的“单点真理源(Single Source of Truth)”,统一管理多台 VPS 的免密登录权限。

    方案一:一键单次导入(快速初始化)

    新开机器或重装系统后,只需一条命令即可完成拉取与权限配置。

    登录 VPS 终端,运行以下命令(将 your_github_username 替换为你的真实 ID):

    Bash

    mkdir -p ~/.ssh && chmod 700 ~/.ssh
    curl -fsSL https://github.com/your_github_username.keys >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
    • 安全提醒:这里使用追加符号 >>。如果你使用覆写符号 >,请务必确认 GitHub 账户中已绑定了当前电脑可用的密钥,并在新开终端窗口测试登录成功前,切勿关闭当前的 SSH 会话。

    方案二:Cron 定时同步(推荐:兼顾便利与容灾)

    如果你经常在 GitHub 增删密钥,又希望多台 VPS 自动跟进,可以通过定时任务定期拉取。

    为了避免拉取失败(如网络中断、GitHub API 故障)导致 authorized_keys 被写空而把自己锁在门外,脚本中必须加入临时文件校验与兜底机制。

    1. 编写同步脚本

    创建脚本文件 ~/.ssh/sync_keys.sh:

    Bash

    cat << 'EOF' > ~/.ssh/sync_keys.sh
    #!/bin/bash
    set -e
    
    GITHUB_USER="your_github_username"
    TARGET_FILE="$HOME/.ssh/authorized_keys"
    TEMP_FILE=$(mktemp)
    
    # 确保目录和初始权限正常
    mkdir -p "$HOME/.ssh"
    chmod 700 "$HOME/.ssh"
    
    # 拉取公钥并校验非空
    if curl -fsSL --connect-timeout 10 "https://github.com/${GITHUB_USER}.keys" -o "$TEMP_FILE" && [ -s "$TEMP_FILE" ]; then
        # 覆盖同步(完全以 GitHub 为准)
        mv "$TEMP_FILE" "$TARGET_FILE"
        chmod 600 "$TARGET_FILE"
    else
        # 拉取失败或内容为空则丢弃,保持原有 authorized_keys 不变
        rm -f "$TEMP_FILE"
    fi
    EOF
    
    chmod +x ~/.ssh/sync_keys.sh
    

    2. 设置 Cron 定时任务

    运行 crontab -e,添加以下内容(以每 2 小时自动同步一次为例):

    Code snippet

    0 */2 * * * /bin/bash ~/.ssh/sync_keys.sh >/dev/null 2>&1
    

    方案三:SSH 原生动态拉取(进阶方案)

    OpenSSH 提供了 AuthorizedKeysCommand 机制,允许每次有 SSH 连接进入时,直接运行外部脚本动态获取公钥,无需在本地保留静态的 authorized_keys。

    1. 创建拉取脚本

    创建系统级脚本 /usr/local/bin/fetch-github-keys:

    Bash

    #!/bin/bash
    # 参数 $1 代表当前尝试登录的本地用户名
    TARGET_USER="root"
    GITHUB_USER="your_github_username"
    
    if [ "$1" = "$TARGET_USER" ]; then
        curl -fsSL --connect-timeout 5 "https://github.com/${GITHUB_USER}.keys"
    fi
    

    赋予执行权限:

    Bash

    chmod 755 /usr/local/bin/fetch-github-keys
    

    2. 配置 SSH 守护进程

    编辑 /etc/ssh/sshd_config(或在 /etc/ssh/sshd_config.d/ 下新建配置文件):

    Plaintext

    AuthorizedKeysCommand /usr/local/bin/fetch-github-keys %u
    AuthorizedKeysCommandUser nobody
    

    重启 SSH 服务生效:

    Bash

    sudo systemctl restart sshd
    

    注意与权衡: 动态拉取虽然能做到“GitHub 删 key 秒级失效”,但强依赖 VPS 访问 GitHub 的瞬时网络状况。一旦 VPS 国际链路拥堵或 GitHub 解析波动,可能直接导致无法登入。因此,生产环境更推荐方案二(定时同步到本地磁盘)。

    安全实践要点

    1. 公钥公开性:GitHub 的 .keys 属于全网公开数据,切勿在此放包含敏感标识的私人测试公钥。
    2. 账号保护:GitHub 账户成为你的服务器通行证中心,必须开启 2FA(双重认证),避免 GitHub 账户被盗导致名下 VPS 权限全部失守。
    3. 保持备用连接:每次变更 SSH 配置或运行全量覆盖脚本时,务必保留当前终端会话,另起终端测试 ssh user@ip 确认能成功登入后再退出。