查看 rsync 穿过 SSH authorized_keys command = «…»

我正试图检查 rsync 通过文件。 authorized_keys sshd.

问题是我无法运行 rsync 从验证者脚本。

这是我的文件 authorized_keys:

command="/home/username/Desktop/valrsync username" ssh-rsa AAAA [...]

这是一个脚本 valrsync 每次不同:

测试 1 -

$SSH_ORIGINAL_COMMAND

输出 -

$ rsync [...] / username@remotemachine:/
/home/username/Desktop/valrsync: line 2: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]

更重要的是,测试 2 -

#!/usr/bin/python

import os
os.system(os.getenv('SSH_ORIGINAL_COMMAND'))

输出 (跑步 rsync 来自本地计算机并获取输出

valrsync

在远程机器上) -

$ rsync [...] / username@remotemachine:/
sh: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]

我明白那个 rsync 以某种方式在远程计算机上生成实例,显然,当我尝试执行命令时,未提及此实例 rsync 通过脚本。 rsync 未安装在服务器上,我知道这不应该是。

现在问题是我可以做到这一点 (另外,也许安装 rsync 到服务器 ...?)
已邀请:

涵秋

赞同来自:

你收到一条错误消息

rsync: command not found

. 通常意味着你

$PATH

环境变量安装不正确。 使用您的第一个测试,明确设置

PATH

启用安装命令的目录 rsync. 例如:

#!/bin/sh

PATH=/usr/local/bin:$PATH
export PATH

$SSH_ORIGINAL_COMMAND

一定要使脚本可执行 (

chmod 755 valrsync

).

所有这些都表明了 rsync 真的安装在目标系统中。

诸葛浮云

赞同来自:

比写入家常情景的最佳方法是使用


rrsync

, 在基于的分布中 Debian 你已经必须安装了

rsync



/usr/share/doc/rsync/scripts/rrsync.gz

. 在这种情况下,只需执行以下命令以解压缩压缩脚本

/usr/bin/rrsync

:

gunzip /usr/share/doc/rsync/scripts/rrsync.gz -c|sudo tee^Cusr/bin/rrsync && sudo chmod +x /usr/bin/rrsync

(什么时候开始

root

显然,你可以离开

sudo

呼叫)

选择
https://www.samba.org/ftp/unpa ... rsync
.

提醒:

拥有

rsync

安装在远程计算机上 (那个

authorized_keys

文件)

这是背景

这里。

一旦完成,您就可以添加

command=

在打开的关键串面前,导致

rrsync

.

通常您打开一些限制性参数 SSH 和...一起

command=

, 因此它可能是这样的:

command="/usr/bin/rrsync -wo /data/backup/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ecdsa-sha2-nistp521 AAAAE...

通过提供此目录 (您可以使用

-ro

只读和

-wo

仅供录音) 你可以留下目录

rsync

称呼。

所以你的命令线将成为

rsync [...] / username@remotemachine:

(以后注意错过的方式

:

).

裸奔

赞同来自:

确保已安装 rsync 和两端的道路 (客户端和服务器). 客户 rsync 用途 SSH 执行 rsync 对于遥控器 (服务器) 边。 这就是它的工作原理 rsync.

要回复问题请先登录注册