Articles of git

限制ssh到本地networking,除了git用户

我有一个与Gitlab和OpenVPN设置的Ubuntu 12.04服务器,作为我们的git和vpn服务器。 目前我已经在防火墙中打开了1194端口来打开OpenVPN,让用户通过rsa证书和谷歌authentication密钥进行身份validation。 我还没有为SSHstream量打开防火墙,因为我不希望SSH完全暴露给广域网。 但是,我们需要能够推拉,而不必连接到VPN。 如何才能打开SSH访问只有有限的git用户,同时允许pipe理员从局域网访问服务器? 我怀疑我应该在sshd_config文件中寻找使用匹配组的方向。 正如在这个问题中所看到的:“ 我如何设置OpenSSH每用户身份validation方法? ”,有没有人有这方面的经验? 编辑: 我最初接受了使用access.conf来限制login访问的答案。 但是后来的答案表明,在sshd.conf中也可以通过匹配指令或使用username @ hostaddress语法来实现。 起初我认为我更直观的把它放在sshd中,而且对其他pipe理员来说可能更容易维护和理解。 在sshd.conf上使用access.conf有什么好处吗? 如果我在这里提到的选项的范围是多么直观,我会说:1. sshd.conf 2. access.conf 3. IpTables 你同意吗?

弹性beanstalk访问私人git回购

我正在尝试使用.ebextensions命令为我的弹性beanstalk实例添加一个ssh密钥。 我存储的密钥在我的应用程序代码中,我尝试将它们复制到根.ssh文件夹,以便以后在执行git + ssh克隆时可以访问它们 这里是我的.ebextensions文件夹中的configuration文件的一个例子 packages: yum: git: [] container_commands: 01-move-ssh-keys: command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;" 02-add-ssh-keys: command: "ssh-add ~root/.ssh/tca_read_rsa" 问题是我试图克隆回购时得到的是一个错误 Host key verification failed. 我尝试了很多方法尝试将主机添加到known_hosts文件,但没有任何工作! 执行克隆的命令是npm install,因为repo指向节点模块

jenkins用户证书不在项目中显示

所以我用插件运行Jenkins-CI: 证书 凭证绑定 混帐 首先,我为了使用远程存储库validationGit所做的工作,是否将服务器的凭据添加到没有域的全局范围。 但是,这允许我的Jenkins服务器上的任何用户使用这些相同的凭据,从而与我的Git远程存储库进行交互。 所以我试着去: Jenkins – > People – > [Username] – > Credentials 我试了两个补充: 没有域的凭证(“全局(无限制)”,但仍然是我的个人凭证而不是服务器范围的凭证) 添加一个凭证域,并以这种方式添加我的Git远程用户名和密码。 然而,当我进入Jobs – > [Job] – > Configure – > Source Code Management – > Git – > Credentials ,它只列出了服务器范围的证书,而不是我注册到我的帐户的证书。 所以我的问题是:我如何使用不可用于Jenkins服务器的其他证书,并在Job的SCM证书中使用它们?

在debian(基于系统)上为git-http-backendconfigurationnginx

我在使用我的Ubuntu 13.04机器上的nginx服务器时,遇到了麻烦,无法使用git–http-backend。 之前用Debian 7试过,但结果相似。 基本上我遵循http://weininger.net/configuration-of-nginx-for-gitweb-and-git-http-backend/,但忽略任何有关gitweb。 我做了以下几点: 安装nginx,git,git-core和fcgiwrap使用: apt-get install git git-core nginx fcgiwrap 在/var/git/test.git创build一个裸回购,并将其变为www-data: mkdir -p /var/git/test.git cd /var/git/test.git git init –bare git update-server-info chown -R www-data:www-data /var/git 用/ etc / nginx / sites-enabled / defaultreplace server { listen 80; server_name localhost; location / { root /var/git; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param PATH_INFO $uri; […]

让我们的Windows用户社区更容易

我在一个学术环境中工作,在那里我们提供了各种ssh可访问的计算资源。 我们也提供了git仓库托pipe,我们需要ssh来读取/写入仓库。 我们对OS X和Linux用户的指导相对简单,最重要的是,与OS X和大多数现代Linux发行版一致, OpenSSH是开箱即用的,更重要的是, ssh-agent被预先configuration为在桌面会话处于活动状态时运行。 我们通常鼓励人们把密码分配给他们的密钥,所以没有身份validation代理人的生活会很快变得烦人。 目前,我们针对Windows用户的解决scheme在整体上更为分散和复杂。 从历史上看,人们一直在使用PuTTY ,但是这需要额外的步骤来生成兼容OpenSSH的密钥。 这也使得使用git命令行工具变得更加困难 – 虽然不是,我意识到,不可能的是,当与ssh可访问的存储库交互时,它最适合OpenSSH。 我们只想简单的安装msysgit ,但是我们正在寻找一种将ssh-agent集成到Windows桌面环境中的好方法。 最常见的解决scheme就是通过.bashrc条目来启动代理,但这看起来好像很不好,这意味着我们必须通过在Windows下编辑.bashrc的过程来引导大部分非技术用户。 另一个复杂的问题是, WinSCP经常被用作文件传输工具 – 当然这不会与ssh-agent 。 它会与来自PuTTY伙计的pagent交谈,但是pagent不会说ssh-agent所以它不能从命令行工作。 其他人做了什么来为不同平台上的用户提供一致的环境? 你刚刚抛出手,决定为Windows用户维护一套单独的文档? UPDATE 我发现两个程序在OpenSSH和pagent之间起到垫片的作用。 你有什么经验,无论是charade还是ssh-pagent ?

版本控制工头和木偶

我刚刚安装了工头,我不知道如何去把我所有的configuration在版本控制。 我知道我可以使用Git来安装我在Puppet master上的每个模块,但是更喜欢一个更全面的解决scheme,它不仅包含模块,还包含与每个主机相关联的类以及主机上设置的任何variables。 任何build议将不胜感激与相关的工作stream程。 如果是相关的,我将GitLab设置为现场的中央Git服务器,并计划尽快安装一个CI服务器,如Jenkins。

是否有可能在Windows Azure中有一个Git仓库?

有谁知道是否有可能在Windows Azure上托pipeGit仓库吗?

多服务器部署策略 – 生产服务器上的Git?

主要问题:在生产服务器上部署使用Git是一个好策略吗? 我看到的很多很多的部署策略围绕在服务器上进行Git(开发,分段和生产)。 对于部署到舞台/制作来说,这样的优点显而易见: 能够迅速引入变化 更简单的自动化 可以根据需要切换分支(也许每个testing服务器分支) 可以查看文件在生产服务器中是否发生了某种变化 但是,我看到一些缺点: 安全性 – Git似乎是一个潜在的攻击媒介,即使生产具有只读访问权限 生产服务器上的git pull可能会失败,如果在生产中有某种不确定的变化(也可以用-f超越) 部署为服务公司(例如Beanstalkapp.com,deployhq.com)使用FTP,SFTP或SSH。 Beanstalkapp特别擅长只修改基于git历史的文件(vs重新部署每个文件)。 这些服务不要求你在你的舞台/制作服务器上使用git(如果你通过SSH进行部署,则可以使用该策略)。 我发现我喜欢使用sftp: 可以运行脚本前/后部署仍然 覆盖,移动,删除文件,不pipe生产服务器上的什么(这对我来说是一个加号) 生产中没有.git目录或任何基于git的攻击漏洞 在最佳实践和安全性方面,在生产服务器上使用git是否容易? 如果没有,那么在跳过持续集成工具的同时部署一个好的方法是什么? (由于时间/预算/客户端的限制,我只会询问有关跳过CI工具的问题,因此无法在我的日常使用中使用)。

我希望Jenkins在Gerrit上传或更改补丁集时启动构build。 我该如何configuration呢?

我正在使用Jenkins 1.557来观看Gerrit 2.8实例的更改。 我正在使用以下插件: Git插件2.1.0 Git客户端插件1.7.0 格里特触发器2.11.1 当我在Gerrit触发器上使用“testing连接”时,它返回成功,所以我知道凭据正在工作。 我正在使用“高级”button下的默认值。 对于我的testing构buildtypes,我使用的是一个git仓库,Jenkins签出(我添加了“ls -l”的后期构build步骤,并正确显示了仓库的内容)。 我有生成触发器设置为“gerrit事件”和“gerrit触发器”我有“检查未审查的补丁集”选中,并启用“补丁集创build”的触发器启用。 gerrit项目设置似乎是正确的。 我无法通过上传新的更改或新的补丁集来进行更改。 当我使用“查询并触发Gerrit补丁”button手动触发构build时,构build发生,但没有投票logging。 我明显错过了部分难题 – 如果我进入gerrit并做一个“stream事件”,我会看到我期待看到的事件。 jenkins – 来自O'Reilly的权威指南并没有真正涵盖Gerrit。 我试图避免投票,因为会有几十个由Jenkins实例pipe理的git repos。 debugging的下一步是什么?

git克隆 – 失败,而不是提示凭据

当在自动化工具 – networking前端,CI系统中克隆git仓库时,有时git克隆调用会打开一个提示,询问用户名和密码(例如,克隆一个不存在的Github仓库时,或者在缺lessssh密钥的新节点上)。 我怎么让GIT失败(最好有一个明智的错误信息和退出代码),而不是等待服务器进程给它一个用户名和密码?