- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为github使用多个部署 key ,这意味着我需要根据存储库名称匹配我的SSH配置。我无法根据主机名,端口或用户进行匹配,因为它们都相同。只有仓库名称和部署 key 不同。
我知道这个问题以前曾被问过,但我找不到令人满意的答案,因为我对在github ssh URL中添加子域或用户不感兴趣。这个问题专门针对如何匹配不涉及修改默认github ssh URL的URL PATH或SSH参数或其他解决方法。
默认的ssh github url是git@github.com:githubusername/githubreponame.git
常用的SSH配置为:
# repo 1
# MATCH or HOST xxxxxxxxxxx
HostName github.com
User git
IdentityFile ~/.ssh/myrepo1name_rsa
# repo 2
# MATCH or HOST xxxxxxxxxxx
HostName github.com
User git
IdentityFile ~/.ssh/myrepo2name_rsa
The available criteria keywords for MATCH are: canonical, final, exec, host, originalhost, user, and localuser.
exec
条件关键字似乎很有希望:
The exec keyword executes the specified command under the user's shell. If the command returns a zero exit status then the condition is considered true.
exec
可以访问以下变量
http://man7.org/linux/man-pages/man5/ssh_config.5.html#TOKENS:
%h The remote hostname.
%i The local user ID.
%L The local hostname.
%l The local hostname, including the domain name.
%n The original remote hostname, as given on the command line.
%p The remote port.
%r The remote username.
%u The local username.
Match exec "pwd | grep myreponame1"
HostName github.com
User git
IdentityFile ~/.ssh/myreponame1_rsa
pwd | grep reponame
将退出true。但这不适用于克隆或使用其他目录名。
MATCH exec
。
Match exec "git remote get-url origin | grep reponame || echo $REPO | grep reponame"
最佳答案
您可以为特定的GitHub用户或存储库指定SSH key 。
在全局git配置中使用url
规则更改主机名。然后在SSH代理配置中使用Host
规则为主机名选择正确的身份。
示例:
GitHub用户名:user1
。
仓库:git@github.com:user1/repo.git
。
用户身份文件:~/.ssh/id_rsa_user1
。~/.gitconfig
或~/.config/git/config
:
[url "git@github.com:"]
insteadOf = https://github.com/
[url "git@github-user1:user1"]
insteadOf = git@github.com:user1
~/.ssh/config
:
AddKeysToAgent yes
IdentitiesOnly yes
Host github-user1
HostName github.com
IdentityFile ~/.ssh/id_rsa_user1
Host *.example.com
IdentityFile ~/.ssh/id_rsa_example
Git将
git@github.com:user1
替换为
git@github-user1:user1
。因此,新的主机名将为
github-user1
。然后,SSH代理将使用新的主机名来选择
user1
身份文件
~/.ssh/id_rsa_user1
。
git clone git@github.com:user1/repo.git
注释:
url
规则。因此,这将不起作用:
git clone https://github.com/user1/repo.git
SSH配置手册:
man ssh_config
参数含义:
AddKeysToAgent
-首次使用时,将 key 及其 key 短语存储在代理中。 IdentitiesOnly
-即使代理具有更多身份,也仅使用配置的身份。 ~/.ssh/id_rsa
。如果您使用它,请不要通过顶级
IdentityFile
或
Host *
规则进行设置,否则会遇到以下问题:
IdentityFile ~/.ssh/id_rsa
设置。 id_rsa_user1
不存在。 github-user1
规则,代理仍将使用Host github-user1
主机的默认标识。 关于ssh - 如何根据URL路径或SSH参数(对于github部署 key )匹配SSH配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60683677/
使用sed和/或awk,仅在行包含字符串“ foo”并且行之前和之后的行分别包含字符串“ bar”和“ baz”时,我才希望删除行。 因此,对于此输入: blah blah foo blah bar
例如: S1: "some filename contains few words.txt" S2:“一些文件名包含几个单词 - draft.txt” S3:“一些文件名包含几个单词 - 另一个 dr
我正在尝试处理一些非常困惑的数据。我需要通过样本 ID 合并两个包含不同类型数据的大数据框。问题是一张表的样本 ID 有许多不同的格式,但大多数都包含用于匹配其 ID 中某处所需的 ID 字符串,例如
我想在匹配特定屏幕尺寸时显示特定图像。在这种情况下,对于 Bootstrap ,我使用 col-xx-## 作为我的选择。但似乎它并没有真正按照我认为应该的方式工作。 基本思路,我想显示一种全屏图像,
出于某种原因,这条规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*
我想做类似的东西(Nemerle 语法) def something = match(STT) | 1 with st= "Summ" | 2 with st= "AVG" =>
假设这是我的代码 var str="abc=1234587;abc=19855284;abc=1234587;abc=19855284;abc=1234587;abc=19855284;abc=123
我怎样才能得到这个字符串的数字:'(31.5393701, -82.46235569999999)' 我已经在尝试了,但这离解决方案还很远:) text.match(/\((\d+),(\d+)\)/
如何去除输出中的逗号 (,)?有没有更好的方法从字符串或句子中搜索 url。 alert(" http://www.cnn.com df".match(/https?:\/\/([-\w\.]+
a = ('one', 'two') b = ('ten', 'ten') z = [('four', 'five', 'six'), ('one', 'two', 'twenty')] 我正在尝试
我已经编写了以下代码,我希望用它来查找从第 21 列到另一张表中最后一行的值,并根据这张表中 A 列和另一张表中 B 列中的值将它们返回到这张表床单。 当我使用下面的代码时,我得到一个工作表错误。你能
我在以下结构中有两列 A B 1 49 4922039670 我已经能够评估 =LEN(A1)如2 , =LEFT(B1,2)如49 , 和 =LEFT(B1,LEN(A1)
我有一个文件,其中一行可以以 + 开头, -或 * .在其中一些行之间可以有以字母或数字(一般文本)开头的行(也包含这些字符,但不在第 1 列中!)。 知道这一点,设置匹配和突出显示机制的最简单方法是
我有一个数据字段文件,其中可能包含注释,如下所示: id, data, data, data 101 a, b, c 102 d, e, f 103 g, h, i // has to do with
我有以下模式:/^\/(?P.+)$/匹配:/url . 我的问题是它也匹配 /url/page ,如何忽略/在这个正则表达式中? 该模式应该: 模式匹配:/url 模式不匹配:/url/page 提
我有一个非常庞大且复杂的数据集,其中包含许多对公司的观察。公司的一些观察是多余的,我需要制作一个键来将多余的观察映射到一个单独的观察。然而,判断他们是否真的代表同一家公司的唯一方法是通过各种变量的相似
我有以下 XML A B C 我想查找 if not(exists(//Record/subRecord
我制作了一个正则表达式来验证潜在的比特币地址,现在当我单击报价按钮时,我希望根据正则表达式检查表单中输入的值,但它不起作用。 https://jsfiddle.net/arkqdc8a/5/ var
我有一些 MS Word 文档,我已将其全部内容转移到 SQL 表中。 内容包含多个方括号和大括号,例如 [{a} as at [b],] {c,} {d,} etc 我需要进行检查以确保括号平衡/匹
我正在使用 Node.js 从 XML 文件读取数据。但是当我尝试将文件中的数据与文字进行比较时,它不匹配,即使它看起来相同: const parser: xml2js.Parser = new
我是一名优秀的程序员,十分优秀!