You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何便捷地将GitHub中的SSH密钥导入Ubuntu系统?

如何便捷地将GitHub中的SSH密钥导入Ubuntu系统?

嘿,我刚好折腾过类似的需求,给你几个简单靠谱的方案,不管是桌面版还是服务器版Ubuntu,甚至是你提到的ZFS根系统(用debootstrap安装的那种)都能用:

一、手动快速导入(适合单用户操作)

SSH对文件和目录的权限要求特别严,所以得先把基础准备做好:

  • 先创建.ssh目录并设置正确权限:
    mkdir -p ~/.ssh && chmod 700 ~/.ssh
    
  • 把你的GitHub公钥内容(就是开头带ssh-rsa或ecdsa-sha2-nistp256的那串完整字符)追加到授权文件里,同时锁好权限:
    echo "你的完整公钥内容" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
    
    小贴士:如果是从GitHub上拿自己的公钥,直接复制页面上的完整内容就行,别漏了末尾的邮箱注释~

二、用ssh-copy-id一键搞定(跨机器导入)

如果你已经在另一台机器上有SSH私钥对,这个SSH自带的工具能帮你省超多事:

  • 确保目标Ubuntu机器开了SSH服务,然后在本地机器运行:
    ssh-copy-id 你的Ubuntu用户名@目标机器IP或主机名
    
    它会自动帮你创建.ssh目录、复制公钥、设置正确权限,全程不用手动改权限,完美避开权限坑。

三、脚本自动化导入(适合批量部署)

如果要给多台机器或者多个用户导入公钥,写个简单的脚本更高效:

#!/bin/bash
# 替换成你要导入的公钥内容
PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC..."
# 替换成目标用户名,当前用户就用$USER
TARGET_USER="$USER"
TARGET_DIR="/home/$TARGET_USER/.ssh"

# 创建目录并设置归属和权限
mkdir -p "$TARGET_DIR"
chown "$TARGET_USER:$TARGET_USER" "$TARGET_DIR"
chmod 700 "$TARGET_DIR"

# 追加公钥并锁好权限
echo "$PUB_KEY" >> "$TARGET_DIR/authorized_keys"
chown "$TARGET_USER:$TARGET_USER" "$TARGET_DIR/authorized_keys"
chmod 600 "$TARGET_DIR/authorized_keys"
  • 把脚本保存为import-ssh-key.sh,给执行权限后运行:
    chmod +x import-ssh-key.sh && sudo ./import-ssh-key.sh
    
    (如果是给其他用户导入,需要加sudo确保权限足够)

针对ZFS根系统的小提醒

你提到用debootstrap装ZFS根系统时没法在安装阶段导入,其实装完之后用上面的方法完全没问题——只要你的/home目录挂载正常、能正常读写,这些操作和普通ext4文件系统下没区别,核心都是操作.ssh目录和authorized_keys文件~

备注:内容来源于stack exchange,提问作者Journeyman Geek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:53:16