首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有密码的ssh密钥加载到ssh代理中,并在Windows启动时将其用于其他进程?

如何将带有密码的ssh密钥加载到ssh代理中,并在Windows启动时将其用于其他进程?
EN

Server Fault用户
提问于 2011-02-16 09:44:07
回答 1查看 1.1K关注 0票数 1

我正在通过持续集成(TeamCity build-agent)在Windows环境中设置应用程序的自动部署,并使用cygwin + openssh来执行远程执行部分--我基本上是使用ruby的capistrano来执行一系列自定义任务。

由于构建代理是作为窗口服务运行在盒子上,所以它是无头的。该框不包含已登录的用户,因此当(例如)密钥链或选美可能被加载时,用户没有机会键入密钥的密码。

所以目前,密码在部署脚本中是硬编码的--我的意思是,在一个地方,所以它不是分散在所有地方,但是看起来,似乎必须有一个更安全的方法来做到这一点。

有人能告诉我是什么吗?:-)

  • 我真的不想用密码。
  • 我希望不必在每次重新启动时手动登录到构建代理,这样就可以加载密钥。

更新:

  • 我选择使用密码的密钥,因为它本身似乎更安全,直到后来我遇到了如何打开无头进程密钥的障碍。这个想法是,只有拥有钥匙密码的人才能部署。也许我想要一个(严格控制的)密码密码-- CI构建代理使用的无密码密钥,以及一个密码密码‘d’密钥,供人类使用?
EN

回答 1

Server Fault用户

发布于 2011-02-16 12:36:03

Windows环境中的SSH是一个不寻常的选项。大多数人会使用WMI来部署应用程序和管理远程系统。Jenkins(以前的Hudson)充分利用了WMI来实现这一目的,所以请看一下这里的例子。

但是,您在SSH上,所以我建议您生成没有密码的SSH密钥。

与盗取或猜测常规密码相比,更难承担或猜测(未加密的) SSH密钥。

将未加密的SSH与IP限制和日志监视结合起来,您将立即知道是否有人窃取了密钥,并试图使用被盗的密钥从另一个主机登录。

如果您还没有这样做:请考虑允许您的高值主机连接到应用程序节点的设计,而不是相反的方法。

如果你(暴露了?)节点通过SSH连接到中央服务器进行应用程序更新,请考虑使用ForcedCommand和ChrootDirectory来限制试图使用应用程序节点攻击您的黄金主机的攻击者可以使用多少数据。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/236100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档