apache – 将rsync用于没有shell访问权限的远程SSH用户

我设置Jenkins CI将我的
PHP应用程序部署到我们的QA Apache服务器,然后我遇到了一个问题.我成功地将pubkey身份验证从本地jenkins帐户设置为远程apache帐户,但是当我使用rsync时,我收到以下错误:

[jenkins@build ~]# rsync -avz -e ssh test.txt apache@site.example.com:/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 apache@site.example.com连接成功,但很快就把我踢出去,因为apache没有shell.

最佳答案 这可能是最简单的事情.您可能只希望使用有限的shell(如
rssh
scponly)进行设置,以仅允许文件传输.您可能还想设置一个chroot jail,以便它无法看到您的整个文件系统.

点赞