Ruby jenkins shell为设备抛出不适当的ioctl

Ruby jenkins shell为设备抛出不适当的ioctl,ruby,shell,jenkins,Ruby,Shell,Jenkins,我试图使用命令“cap production deploy”从jenkins shell部署ruby,但它抛出了一个错误: deploy@10.105.27.132的密码:(回溯限制为导入的任务) 帽子流产了! SSHKit::Runner::ExecuteError:作为执行时发生异常deploy@10.105.27.132:设备的ioctl不正确 Errno::ENOTTY:设备的ioctl不正确 如果我从终端手动执行命令,它将毫无问题地执行。 我已经设置了公钥,这样我就可以在不需要输入密码

我试图使用命令“cap production deploy”从jenkins shell部署ruby,但它抛出了一个错误:

deploy@10.105.27.132的密码:(回溯限制为导入的任务) 帽子流产了! SSHKit::Runner::ExecuteError:作为执行时发生异常deploy@10.105.27.132:设备的ioctl不正确 Errno::ENOTTY:设备的ioctl不正确

如果我从终端手动执行命令,它将毫无问题地执行。 我已经设置了公钥,这样我就可以在不需要输入密码的情况下执行命令,并且还向GitLab中的project添加了部署密钥

当我搜索答案时,我发现在大多数情况下,问题在于部署键,但我已将其添加到项目中,并且我可以从终端手动执行命令,因此问题一定在Jenkins shell中。 似乎它可能使用了终端的一些解释,而不是真实的东西


有没有办法解决这个问题,以便执行Jenkins shell的命令?

我解决了这个问题。我以jenkins用户的身份登录jenkins服务器,与他一起创建公钥并将其上传到生产服务器。在那之后,一切顺利。我没有看到Jenkins有自己的用户,我必须与该用户创建公钥。

似乎没有设备绑定到连接,因为这是一个没有交互的纯命令。唯一的方法应该是公钥。@但我已经在Jenkins服务器中创建了公钥,并将其添加到生产服务器中。或者你的意思是其他方式吗?你正确配置了ssh服务器吗?你可以不用密码登录到你的服务器吗?@geminieith是的,如果我使用sshuser@myserveraddress然后,我连接并登录到它没有密码。这就是到生产服务器的连接,我也需要到gitlab服务器的无密码连接吗?根据你的帖子,这实际上不起作用。您是否已经使用公钥配置了登录SSH服务器的全局凭据?