当前位置: 首页 > news >正文

同一台电脑管理多个ssh key

默认情况下,我们在本地电脑生成的密钥都是 id_rsa 和 id_rsa.pub ,git 默认情况下也只会读取这个私钥,所以我们需要修改一些配置来支持多个SSH Key。

本文基于Linux系统,Windows系统类似

第一步:生成ssh公私钥

ljh@pc:~/.ssh$ ssh-keygen -t rsa -C "xxx@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ljh/.ssh/id_rsa): id_rsa_gitlab


第二步:把生成的key添加到ssh-agent里面

ssh-agent是一个私钥的管理工具,当我们需要通过不同的私钥去连接不同的服务器时,需要我们手动输入私钥密码,ssh-agent可以免去这项工作,那么我们需要将新的key 添加到ssh-agent里面管理,可以通过ssh-add命令,首先我们看下里面有哪些key:

ljh@pc:~/.ssh$ ssh-add -l
2048 SHA256:xxx /home/ljh/.ssh/id_rsa (RSA)
默认情况下id_rsa已经存在里面,那么我们此时应该把上面新建的key也添加到里面:

ljh@pc:~$ ssh-add /home/ljh/.ssh/id_rsa_gitlab
Identity added: /home/ljh/.ssh/id_rsa_gitlab (/home/ljh/.ssh/id_rsa_gitlab)


第三步:配置config,关联本地与远程的key

在.ssh/ 目录里创建一个config文件,通过配置信息告诉git什么情况下使用新的key:

ljh@pc:~/.ssh$ touch config
ljh@pc:~/.ssh$ vim config
添加下面内容:

# github
Host github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User ljh
 
# gitlab
Host gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
User ljh
User填写的是gitlab账号。

第四步:测试

测试:

ssh -T git@gitlab.com
如果提示如下 请输入 yes 后回车:

The authenticity of host 'gitlab.com (13.250.177.223)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)?
连接成功会返回:

You've successfully authenticated, but GitHub does not provide shell access.
文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为CSDN博主「嗯嗯~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41977631/article/details/106560574/

http://www.lryc.cn/news/61662.html

相关文章:

  • 《UVM实战》学习笔记——第七章 UVM中的寄存器模型2——期望值/镜像值、自动/显示预测、操作方式
  • OFDM-LS信道估计 MMSE信道估计公式推导
  • 业界内分布式锁
  • 基于Java+Springboot+Vue+elememt甜品屋蛋糕商城系统设计和实现
  • C/C++每日一练(20230424)
  • 三百左右的蓝牙耳机哪个音质好?三百左右音质最好的蓝牙耳机推荐
  • 把阿里大鸟花3个月时间整理的软件测试面经偷偷给室友,差点被他开除了···
  • 跳槽时的决策逻辑是什么?
  • vs2022下配置zxing cpp环境
  • 【linux】linux入门级别指令
  • Android 开发之核心技术点——性能优化篇(带面试题)~
  • typescript全局安装卸载以及npm相关问题
  • 一条SQL如何被MySQL架构中的各个组件操作执行的?
  • Go语言面试题--进阶语法(30)
  • JavaScript概述四(DOM文档对象模型)
  • 【玩转client-go】如何获取 Kubernetes API 客户端的 *rest.Config 对象
  • 保护模式段描述符
  • 两个数组的交集
  • 原创文章生成器在线版-ai写作生成器
  • 打造高性能CSS的九个技巧我是这么做的
  • python tqdm教程
  • 深度学习 - 41.Word2vec、EGES 负采样实现 By Keras
  • 研发管理风险控制
  • 母婴品牌内容输出怎么做?“四板斧”送你
  • 【视频】视频存储技术
  • 【C/C++】MySQL 为什么选择 B+ 树作为底层数据结构
  • 17、嵌入式Servlet容器
  • 倾斜摄影三维模型转换3DTILTES格式遇到的常见问题
  • 手机如何访问电脑文件?(iOS和Android)
  • TI在物联网和AI边缘计算中落伍了吗?