重装linux系统后git的ssh密钥恢复

编程知识 更新时间:2023-05-02 23:35:50

重装linux系统后git的ssh密钥恢复

对于git用户来说, 每次要输入账户密码是相当麻烦的; 一般地都会记住密码(git config credential.helper store), 或者配置ssh证书(如下图gitee公钥配置);
但是, 系统重装之后, 原证书将不可用; 如果自己的另外一台电脑也在使用这一套密钥; 重置密钥就不太好; 一个比较好的办法是恢复原来的密钥(用同一套密钥安全性有所降低,看个人情况)

环境说明

  1. 操作系统: windows11, ubuntu20 双系统
  2. 两个系统有共享硬盘分区

备份ssh密钥

  1. 重装系统前, 把~/.ssh 目录copy出来备份
  2. 系统盘重要资料备份

恢复ssh密钥

  1. cd ~ && mkdir .ssh && cd .ssh 创建ssh目录
  2. cp -r ${备份目录} ~/.ssh 复制密钥
  3. 修改证书访问权限(重要)
# 从左至右,1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限, 具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示
chmod 700 ~/.ssh  #(drwx------)
chmod 644  ~/.ssh/id_rsa.pub  #(-rw-r--r--)
chmod 600 ~/.ssh/id_rsa   #(-rw-------)
  1. 把专用密钥添加到ssh-agent(重要)
# ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中
ssh-add ~/.ssh/id_rsa
  1. 重启ssh服务: service ssh restart
  2. ssh密钥恢复完成, git pull 正常

双系统ntfs分区git只读问题

windows 10, 11, 快速启动模式下,非完全关机时windows会将硬盘分区写保护,所以再进入Linux后,挂载了写保护的分区, 默认是不让写入的; 如果强制删除(sudo ntfs-3g -o remove_hiberfile /dev/sdaxx /mnt/win10/xx), 会有丢失文件的风险, 不建议使用此方法

  • 建议划分出一块 exfat的分区, 用于双系统文件共享
  • 在linux系统使用fstab挂载此硬盘分区

.git目录权限问题

如果使用fstab文件配置了自动mount ntfs, exfat文件格式的硬盘分区, 默认是root:root权限, 如果使用 chmod修改权限, 回到windows系统后, 权限会出问题
比较好的办法是在fstab配置里面加上 uid,gid 选项:

id $USER  #使用id命令, 查询当前用户的id, 我的是1000
# 配置fstab
UUID=$disk_partition_uuid /home/$USER/$dir           exfat user,exec,uid=1000,gid=1000		0	0
sudo umount -a   #卸载磁盘
# 如果报错: target is busy
lsof /dev/sdb4 查询占用分区的进程, 然后退出目录, 或者kill -9 $pid
sudo mount -a  # 重新挂载, 可以看到ntfs分区的用户组已经为当前登录的用户 $USER:$USER权限了

linux的fstab文件详解

npm 报错: "Error: ENOSYS: function not implemented, symlink… "

在linux 系统挂载的exfat分区上 npm install, exfat文件系统不支持 symlink, 暂无好的解决方案, 把项目mv到Ext4文件系统的分区就正常了

filemode 引用的文件修改

  • 在项目目录: git config core.filemode false, 忽略
  • git config --global core.filemode false 为何无效? .git的配置会覆盖全局配置

更多推荐

重装linux系统后git的ssh密钥恢复

本文发布于:2023-04-29 09:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/1fbb2710e0b4340d29287aff57031061.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:密钥   重装   系统   linux   git

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 110697文章数
  • 28187阅读数
  • 0评论数