网站首页 > 博客文章 正文
一、背景
作为一名出色的开发工程师,目前互联网代码托管平台众多同时有些平台已不支持账号和密码的直接gitbash操作。在我们托管平台多项目多,比如公司用的gitlab、而同时也参加一些开源项目在github、gitee等代码托管平台上;那么如何利用手中的一台开发机,同时支持多个代码托管平台的代码免密进行代码提交拉取等操作呢?这篇文章告诉你答案。以下以MacOS为例。
二、步骤
在用户目录下的.ssh目录下生成ssh免密登录公钥和私钥
- 打开终端Terminal,进入Termina默认是用户目录(~),执行以下命令:
cd ~/.ssh
ssh-keygen -t rsa -C "github邮箱地址" -f ~/.ssh/gitlab_rsa
-t 指定生成rsa类型的秘钥
-C 指定该秘钥注释以便查阅
-f 指定生成秘钥的名字,可以不指定该参数,默认就会生成2个文件:私钥id_rsa,公钥id_rsa.pub。由于需要生成两对私钥公钥,因此需要指定-f,否则生成两次后,私钥公钥会覆盖。
一路回车后,同样在文件夹中看到了生成的Github私钥gitlab_rsa和公钥gitlab_rsa.pub
将公钥配置到对应的gitlab账号中
公钥 即.pub文件可以直接用文本打开,内容粘贴到github的Settings -> SSH and GPG keys -> New SSH Key,Title随便起,自己能认出来即可,Key里面填写复制的.pub里的内容
同样步骤操作github平台
ssh-keygen -t rsa -C "777097006@qq.com" -f ~/.ssh/github_rsa
复制公钥配置到github平台里面
三、创建config文件
在.ssh目录下创建config 文件,git通过这个文件才知道哪个私钥去对应哪个公钥
vim config
#自己的github账号配置
Host github.com
port 22
User git
HostName github.com
AddKeysToAgent yes
UseKeychain yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
#公司的gitlab账号配置(HostName为公司的gitlab地址)
Host gitlab.huolala.cn
port 22
User git
HostName gitlab.huolala.cn
AddKeysToAgent yes
UseKeychain yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_rsa
config文件部分参数含义,仅做记录
Host:可以看作是一个你要识别的模式,对识别的模式,配置对应的主机名和ssh文件
Port:自定义的端口。默认为22,可不配置
User:自定义的用户名,默认为git,可不配置
HostName:真正连接的服务器地址
PreferredAuthentications:指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile:指定本次连接使用的密钥文件
AddKeysToAgent:是否自动将 key 加入到 ssh-agent,值可以为 no(default)/confirm/ask/yes。如果是 yes,key 和密码都将读取文件并加入到 agent ,就像 ssh-add。其他人分别是询问、确认、不加入的意思。添加到 ssh-agent 意味着将私钥和密码交给它管理,让它来进行身份认证。
UseKeychain:ssh密钥的密码存储在钥匙串中
四、测试ssh-key是否连通
ssh -T git@github.com
ssh -T git@gitlab.huolala.cn
ssh -T git@github.com
Hi yuncopy! You've successfully authenticated, but GitHub does not provide shell access.
成功的情况返回如上所示。
猜你喜欢
- 2024-10-10 Nutch-Hadoop-MongoDB搭建分布式爬虫
- 2024-10-10 OpenSSH更新至8.0,修复存在35年的安全漏洞
- 2024-10-10 [python] 基于paramiko库操作远程服务器
- 2024-10-10 利用Zabbix监控系统SSH方式检测远程目标主机
- 2024-10-10 手工方式IPSec VPN配置保障单位与分支之间的数据安全
- 2024-10-10 SSH 简介:安全远程访问的利器(安全远程登录协议ssh)
- 2024-10-10 [ Laravel 5.6 文档 ] 快速入门 —— 重量级开发环境:Homestead
- 2024-10-10 快速上手:Docker环境下的WordPress安装全攻略
- 2024-10-10 阿里云服务器Centos7.3安装Git(阿里云服务器centos装桌面)
- 2024-10-10 如何使用ssh密钥登录远程服务器(如何使用ssh密钥登录远程服务器账号)
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)