在git commit
中,我想检查一下我用来进行提交的机器,我想在提交时检查SSH密钥是否相同。
对此有何帮助?
由于 射线
答案 0 :(得分:1)
您的问题不明确,但如果我了解您,您想知道您的提交是从哪台机器完成的。
简单的答案:
你不能。
用户可以在多台计算机上使用相同的密钥(ssh)。
如何的?
只需在不同的计算机之间复制.ssh
个文件夹,就可以在所有计算机上使用相同的私钥。
在git中,您无法获得用户的信息(您可以使用-c
传递您想要伪造的任何数据),他从何处提交等等。
你需要做什么来在你的服务器/路由器中过滤它,这意味着 - 你不能用git获取这个信息,它必须在网络级别。
答案 1 :(得分:0)
假设我知道我在不同的机器上有不同的ssh密钥,那么在git中是否可以检查相同的内容?
git根本就没有(或很少)ssh或https的概念
这些协议用于访问(离子克隆获取或拉取)服务器上的监听器(托管你的git repos),后者又调用git。
它们可以用于身份验证(git完全忽略它)
git在用作客户端获取repos时只知道ssh(connect.c
#L733-L783实现git_connect()
)
但是你的问题是关于服务器,检查提交,并确定它们的来源:信息根本不存在。
只有像gitolite这样的中间授权图层至少可以records the IP of the git push
operation,这比ssh密钥更精确。
甚至允许restrict access to a repo by source IP address。
但是git一个人不知道该怎么做。
答案 2 :(得分:0)
您可以在登录服务器时使用git config --global user.name
进行设置
将类似命令添加到.bashrc或类似的
git config --global --add user.name "$USER on "`hostname`
然后" git log"输出就像这样
commit f30396c75765f14e377c221bde1fe74a912afa92
Author: jamie on myhost.woowoo.com <james.andrews@iop.org>
Date: Wed Jan 6 12:55:59 2016 +0000
hopefully working