在多人共享的科研服务器上,且每个人有独立的用户账号,最安全、最方便的认证方式是配置 SSH 密钥

因为你有自己的独立用户,你生成的密钥会保存在你自己的 ~/.ssh 目录下,其他用户无法访问,这样既保证了安全,又可以免密码进行 git pullgit push

以下是完整的步骤指南:

第一步:在服务器上生成 SSH 密钥

  1. 使用你的账号通过 SSH 登录到服务器。
  2. 在终端中输入以下命令生成新的 SSH 密钥(推荐使用更安全的 ed25519 算法)。请将双引号内的邮箱替换为你注册 GitHub 使用的邮箱:
    1
    ssh-keygen -t ed25519 -C "your_email@example.com"
  3. 系统会提示你保存密钥的文件位置:
    1
    Enter file in which to save the key (/home/your_username/.ssh/id_ed25519):
    直接按回车(Enter),使用默认路径即可。
  4. 系统会提示你输入 passphrase(密码短语):
    1
    Enter passphrase (empty for no passphrase):
    为了平时拉取/推送时免密码的便利性,建议直接按两次回车留空。(如果你对安全性要求极高,可以设置密码,但每次 push 都会要求输入)。

第二步:获取并复制你的公钥

密钥生成后,会有公钥(.pub)和私钥两个文件。你需要把公钥告诉 GitHub。

在终端输入以下命令查看你的公钥内容:

1
cat ~/.ssh/id_ed25519.pub

终端会输出一长串以 ssh-ed25519 开头,以你的邮箱结尾的字符串。用鼠标选中并复制这一整段内容

第三步:将公钥添加到 GitHub

  1. 在你的个人电脑上打开浏览器,登录 GitHub
  2. 点击右上角的头像,选择 Settings(设置)。
  3. 在左侧边栏找到并点击 SSH and GPG keys
  4. 点击绿色的 New SSH key 按钮。
  5. Title(标题):随便填,建议填一个能让你认出这台机器的名字,比如 Lab-Server-MyName
  6. Key type:保持默认的 Authentication Key
  7. Key:将你刚才在服务器终端里复制的那一长串公钥粘贴到这里。
  8. 点击 Add SSH key 保存。

第四步:测试连接是否成功

回到服务器的终端,输入以下命令测试与 GitHub 的连接:

1
ssh -T git@github.com
  • 第一次连接时,系统可能会问你是否信任该主机的指纹(Are you sure you want to continue connecting (yes/no)?),输入 yes 并按回车。
  • 如果配置成功,你会看到类似这样的提示:
    1
    Hi YourGitHubUsername! You've successfully authenticated, but GitHub does not provide shell access.

第五步:配置 Git 用户信息(重要)

为了让提交记录(Commit)正确显示你的名字和邮箱,别忘了在服务器上配置全局 Git 信息:

1
2
git config --global user.name "你的名字或GitHub用户名"
git config --global user.email "你的GitHub邮箱"

💡 关键提示:后续克隆或修改仓库地址

完成上述配置后,请确保你使用的是 SSH 链接 而不是 HTTPS 链接来操作仓库。

  • 克隆新仓库时,请选择 SSH 选项,命令格式应该像这样:
    1
    git clone git@github.com:用户名/仓库名.git
  • 如果是服务器上已经存在的仓库,并且之前是用 HTTPS 克隆的(https://github.com/...),你需要修改它的远程地址为 SSH:
    1
    2
    3
    4
    # 进入你的仓库目录
    cd your_project_folder
    # 修改 origin 的 URL
    git remote set-url origin git@github.com:用户名/仓库名.git

方法2

使用 Personal Access Token (最推荐,简单快捷)
这种方法不需要在机器上生成密钥,非常适合 AutoDL 这种随时可能释放的云端实例。

  1. 生成 Token(以 GitHub 为例):

登录 GitHub,点击右上角头像 -> Settings -> 左侧最下方 Developer settings -> Personal access tokens -> Tokens (classic)。

点击 Generate new token (classic),随便写个名字,勾选 repo 权限(重要,这决定了你能否拉取私有库)。

生成后,复制那一长串 Token(关掉页面就看不到了)。

  1. 在 AutoDL 终端拉取代码:
    使用带有 Token 的专属 HTTPS 链接进行 Clone:

Bash
git clone https://<你的Token>@github.com/<你的用户名>/<你的私有仓库名>.git
例如:git clone https://ghp_xxx123456@github.com/myname/myproject.git