在没有shell访问的情况下,使用rsync到远程SSH用户。

问题描述 投票:5回答:3

我设置了Jenkins CI来部署我的PHP应用到我们的QA Apache服务器上,我遇到了一个isuse。我成功地设置了从本地 jenkins 帐户到远程 apache 帐户的 pubkey 认证,但当我使用 rsync我得到以下错误信息。

[jenkins@build ~]# rsync -avz -e ssh test.txt [email protected]:/path/to/site
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(64) [sender=2.6.8]
[jenkins@build ~]# 

一个潜在的问题是,远程 apache 帐户没有有效的shell帐户,我应该创建一个具有shell访问权限的远程帐户,并将一部分的 "apache" 组?这不是SSH密钥的问题,因为 ssh [email protected] 连接成功,但很快就把我踢了出去,因 apache 没有shell。

apache ssh apache2 rsync jenkins
3个回答
4
投票

这可能是最简单的事情。你可能只想用一个有限的shell来设置它,如 rssh卑鄙 只允许文件传输。 你可能还想设置一个chroot jail,这样它就不能看到你的整个文件系统了。


0
投票

我同意这可能是最简单的方法。 我们也做了类似的事情,但用的是 scp 而不是。 就像..:

scp /path/to/test.txt [email protected]:/path/to/site

0
投票

我知道这是个很老的帖子了,但如果以后有人看到这个页面... ...

我也有同样的问题,但是当我修复了我的.bashrc.cshrc.profile错误时,我删除了之前在我的.bashrc.cshrc.profile中的 "echo setting DISPLAY=$DISPLAY "语句。所以,修复.bashrc.cshrc.profile错误对我有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.