2012-07-19 95 views
3

我们希望使用ssh-agent通过ssh自动连接到许多机器,在ubuntu机器上使用专用用户(12.04);问题是,既然我们已经通过脚本使用ssh-agent而无需登录

useradd -m -s /bin/bash USER 

生成该用户,我们不登录到该用户的的ssh-agent没有运行,并且使用ssh不需要提供密码的任何企图(我们使用蟒蛇的paramiko)失败说

no autentication methods available 

我们也做了一些研究,发现很多人会开始的ssh-agent使用此命令行

eval "ssh-agent" 

但是这不会对工作我们(特别是当通过python执行上述命令时)。

使其工作的唯一方法是登录到该用户(例如通过ssh)并键入上面的命令,这使得我们的自动化方法不会自动化:是否有一种方法可以使ssh-agent在启动时启动而不需要登录到专用用户?

+1

连接禁用代理时会发生什么? 'ssh.connect(....,allow_agent = False')? – Tisho 2012-07-19 11:46:45

+0

也许你应该看看[Salt](http://saltstack.org/),它可能已经具备了你要实现的功能:) – schlamar 2012-07-19 12:06:06

+0

如果这个问题是关于“我如何启动ssh-agent as服务“(我认为)应该在http://serverfault.com/。 – schlamar 2012-07-19 12:09:57

回答

1

我认为这个问题将在Server Fault网站更好地回答。

但是,这是一个想法。

在所有的PC上创建一个init脚本,这样当pc启动时,它以用户身份登录并启动ssh-agent并注销。设置初始脚本运行级别,以便在正常/多用户模式下启动PC时启动。

+0

我认为你的想法太过分了:)可能他只是想'ssh-agent'作为服务启动。 – schlamar 2012-07-19 12:08:54

+0

这也是一个好主意,但正如@Tisho指出的那样,我们的特殊设置(python + paramiko)可以在没有ssh-agent的情况下使用:谢谢你的回答 – mgalardini 2012-07-19 12:48:43

相关问题