git免密pull指定ssh密钥文件

免密登陆其他机器、获取资源一直是一种非常高效、高度自动化、智能化的方式。技术爱好者不可不知,且最好知行合一。

1、多机共用密钥

在部署时总是希望被部署的服务器上可以免密码执行clone、pull等只读操作。从不用手动输密码到自动更新。能省多少心啊。。。。:)当然自动部署可以用github、gitee的post hook功能,也可以用操作系统的定时任务实现。此处不加讨论。本文着重点在于git pull git@ssh_repo_path时如何指定特定的密钥文件。因为直接执行pull git@ssh_repo_path是会从~/.ssh/id_rsa读取密钥的。如何指定特定的密钥呢?为啥要指定特定的密钥啊。。。。。。因为如果我把密钥都做了备份拷贝,那么换一台机器,直接使用相应的密钥就行了,不需要再重新生成密钥、公钥,然后将公钥添加到github等项目中。能省很多事嘞。。。。。

2、思路

  • 利用git的 SSH_COMMAND环境变量来指定特定密钥。
    来一段windows下的cmd脚本
set rsa_path=operation/keygen/id_rsa
git config core.sshCommand "ssh -i %rsa_path% "
git pull git@gitee.com:your_repo.git
这段脚本首先设定密钥的相对路径(相对于git根目录)。然后设置SSH_COMMAND环境变量。然后执行git pull ssh_repo_path指令去更新本地目录。本人采用的就是此种方式。另外statckoverflow上还有一些别的思路附后。本人没有验证,有兴趣童鞋可以研究其原理并尝试下。

3、其他方式

  • ssh-agent sh -c ‘ssh-add ~/.ssh/id_rsa; git fetch user@host’
  • GIT_SSH_COMMAND

    GIT_SSH_COMMAND=’ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no’ \
    git clone user@host

  • ~/.ssh/config

Host github.comUser gitHostname github.comIdentityFile ~/.ssh/id_rsa

git免密pull指定ssh密钥文件相关推荐

  1. Git 免密Pull/Push

    第一步:Git地址pull 如上图,第5步选择自己的密钥文件位置即可.以后每次pull/push,注意勾选第1步的"Autoload Putty Key",就不用输入密码了

  2. Ansible playbook文件中指定SSH密钥文件

    Ansible playbook可以在命令行上使用--key-file指定用于ssh连接的密钥. ansible-playbook -i hosts init_system.yml --key-fil ...

  3. git 免密登录设置

    git 免密设置 1.登录git页面 2.生成密钥 3.添加密钥 4.拷贝工程 1.登录git页面 首先登陆git页面浏览器,右上角点击自己头像选择Settings,可以看到自己的邮箱,左侧有SSH密 ...

  4. jgit ssh java_java – 为JGit指定SSH密钥

    我想知道如何使用jgit使用指定的ssh密钥文件连接到 github(即不在〜/ .ssh /中). 不幸的是,我不确定如何正确使用JschConfigSessionFactory.我尝试创建一个与本 ...

  5. 验证ssh免密登录_linux ssh 免密登录

    转载请务必注明原创地址为:https://dongkelun.com/2018/04/05/sshConf/ 以下用三台centos为例,ip分别为192.168.44.138.192.168.44. ...

  6. linux免密登录_Linux SSH免密钥登录总结

    Linux下生成密钥 通过命令"ssh-keygen -t rsa" 生成之后会在用户的根目录生成一个 ".ssh"的文件夹 进入".ssh" ...

  7. 远程连接服务器(免密登录,ssh协议22号端口),web服务器:URL格式,http协议,http请求常用的方法(get和post)

    1.实现免密登录  两台Linux之间的免密登录 第一步:在客户端产生秘钥(一对公钥和私钥对) 第二部:将客户端的公钥copy到服务端 [root@server ~]# ssh-keygen -t r ...

  8. 虚拟机免密登录 (SSH 无密登录配置)

    无密钥配置 (1)免密登陆原理 (2)生成公钥和私钥: [root@hadoop101 .ssh]$ ssh-keygen -t rsa 然后敲(三个回车),就会生成两个文件id_rsa(私钥).id ...

  9. 【Linux】scp“免密” 远程copy较多文件

    一.linux脚本实现自动输入密码 使用Linux的程序员对输入密码这个举动一定不陌生,在Linux下对用户有严格的权限限制,干很多事情越过了权限就得输入密码,比如使用超级用户执行命令,又比如ftp. ...

最新文章

  1. 开发一个大型后台管理系统,应该用前后端分离的技术方案吗?
  2. [自定义区间-Range]书里的例子 - 中文数字类
  3. Cadence复用电路原理图及其PCB布局
  4. 语义角色标注视为依存句法分析任务:探索论元内部的隐式树结构
  5. SVN switch 用法详解
  6. 【NOI2013】快餐店【基环树】【树的直径】【set】
  7. 调查 20500 名开发者发现,最流行的编程语言不是 Python 和 Java
  8. 提交代码到远程GIT仓库,代码自动同步到远程服务器上。
  9. PHP 开发者该知道的 5 个 Composer 小技巧
  10. 《算法设计与分析》期末不挂科
  11. 中控考勤机无线连接不上服务器,中控考勤机连接不上电脑的解决方法
  12. 【Qt-Camera】大华相机显示线程
  13. android录屏代码(录屏并生成mp4文件)
  14. SQLServer过期解决步骤
  15. python画出K线图及技术指标
  16. springboot+微信小程序“微印象”在线打印预约系统的设计与实现毕业设计源码061642
  17. 第39级台阶(dp)
  18. 高通QSPR读写NV
  19. 齐博 php7,PHP代码审计理解(二)----齐博CMS7.0文件覆盖
  20. osmocom-bb 国外的一个开源项目, c118

热门文章

  1. FACEGOOD-Audio2Face(个人学习)
  2. 计算机毕业设计Android安卓旅游结伴景点评论-酒店预订系统app用户相约伴一起游玩
  3. Visio里Mathtype公式变形问题解决
  4. SQL SERVER 2019卸载和安装
  5. JZOJ5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
  6. 学生成绩管理系统1.0
  7. 常见的三种字符编码ASCII、Unicode、UTF-8
  8. CSDN20181217博客黑板报
  9. 全网爆火的五款游戏蓝牙耳机,低延迟吃鸡听声辨位毫无压力
  10. cgb2007-京淘day16