如何便捷地将GitHub中的SSH密钥导入Ubuntu系统?
如何便捷地将GitHub中的SSH密钥导入Ubuntu系统?
嘿,我刚好折腾过类似的需求,给你几个简单靠谱的方案,不管是桌面版还是服务器版Ubuntu,甚至是你提到的ZFS根系统(用debootstrap安装的那种)都能用:
一、手动快速导入(适合单用户操作)
SSH对文件和目录的权限要求特别严,所以得先把基础准备做好:
- 先创建
.ssh目录并设置正确权限:mkdir -p ~/.ssh && chmod 700 ~/.ssh - 把你的GitHub公钥内容(就是开头带
ssh-rsa或ecdsa-sha2-nistp256的那串完整字符)追加到授权文件里,同时锁好权限:
小贴士:如果是从GitHub上拿自己的公钥,直接复制页面上的完整内容就行,别漏了末尾的邮箱注释~echo "你的完整公钥内容" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
二、用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.shsudo确保权限足够)
针对ZFS根系统的小提醒
你提到用debootstrap装ZFS根系统时没法在安装阶段导入,其实装完之后用上面的方法完全没问题——只要你的/home目录挂载正常、能正常读写,这些操作和普通ext4文件系统下没区别,核心都是操作.ssh目录和authorized_keys文件~
备注:内容来源于stack exchange,提问作者Journeyman Geek
相关产品推荐
相关产品推荐

