use*_*236 3 git ssh jenkins bitbucket-server
我使用stash作为git存储库管理器.stash使您可以为尝试连接和克隆的每个用户添加ssh密钥.我已经为所有unix用户配置好了,但是Windows给了我很多困难.Windows从机(2008 R2服务器)上的git clone进程永远挂起,因为它可能找不到保存密钥的.ssh目录.当从cli手动运行相同的命令时,它工作正常.
我尝试了各种配置,使用%HOME%env变量等.它根本不适合我.在这个问题上花了一天多的时间但没有任何效果.
任何帮助表示赞赏.
在客户端(Jenkins),您需要检查运行Jenkins Jobs的用户是否知道%HOME%
环境变量:它需要%HOME%.ssh\id_rsa.pub公共ssh密钥.
请参阅" Jenkins - Git - 权限被拒绝(公钥) "
在服务器上(来自Atlassian的Stash),您需要确保~stachAadminAccount\.ssh\authorized_keys
它包含您的公钥.
除此之外,您需要调试ssh连接:
ssh -vvvT ssh://git@stash.atlassian.com:7999/path/to/repo.git
Run Code Online (Sandbox Code Playgroud)
(替换git
为用于管理Stash的帐户,stash.atlassian.com:7999
并由您替换server:port
)
1)我已经明确
%HOME%
地在系统上添加了env vars on slave,只是为了确保它被注入.它可能不需要但我添加它以查看它是否会产生影响
它需要:ssh将寻找密钥(私有和公有)下%HOME%/.ssh
2)我从来没有在stash下乱用ssh键.事实上,存储的所有用户都是隐藏的内部用户,不属于
/etc/password
文件或类似的东西,因此authorized_keys
无论如何都不存在文件 - user1577236 7小时前
a /"不是/etc/password
文件的一部分":当然这些没有在/ etc/password中注册:我们不是在这里谈论用户帐户,而是关于允许用户打开安全shell会话作为一个唯一用户帐户的ssh密钥( stash admin account):所有ssh命令都将在同一帐户下执行.
b /"no authorized_keys
file":当然它应该存在:当你报告带有ssh协议的克隆工作时,它涉及纯ssh通信,这意味着在服务器端查找公钥~/.ssh/authorized_keys
.
文件不存在的唯一方法是Stash启动自己的ssh守护程序,配置为在另一个文件/公钥源中查找密钥.
关于2 - 你在stash中做的是将公钥添加到存储的空间位置,供每个用户使用.
这可能是,但Stash应该只是ssh的一个不错的前端.它背后的所有ssh机制仍应更新.
3)如上所述,使用git ssh协议从命令行运行git clone命令工作正常,那么我应该在调试会话中寻找什么?
您必须定义一个Jenkins作业,该作业ssh -vvvT
以其唯一的命令执行:这样,您将从Jenkins透视图中看到不起作用的内容.
我想调试Jenkins进程并查看它在ssh会话期间的作用,但我不知道该怎么做(还有......).刚刚开始与Jenkins合作2周前左右.
在Windows上,进程资源管理器至少是第一步,以便查看哪个帐户以及Jenkins进程(及其作业)正在运行的环境变量.
归档时间: |
|
查看次数: |
5638 次 |
最近记录: |