远程服务器(scp)中没有帐户的安全上载

时间:2010-12-15 15:32:16

标签: perl upload scp

我正在寻找建立某个脚本的方法。

  • 有些(Linux)用户A,B和C将图像扫描到$ HOME / images / scan
  • 他们应该将这些照片上传到他们没有帐户的远程服务器。
  • 因此是虚拟用户X,他在本地和远程计算机上拥有帐户,但无法直接访问用户的主目录。
  • 他们都有共同的组“图像”,用户的扫描目录对于这个组是可读的。

所以我想找到一种方法,用户如何运行一个脚本,使用远程服务器上的X权限和帐户将图片上传到远程服务器。我为此创建了一个rsa-key,它被添加到远程服务器授权密钥文件中。 对于用户X,一切正常。

我尝试了一些setgid / setuid perl-scripts,但它们不能在用户X权限中运行scp,也不会使用它的rsa-key。像这样的例子:

#!/usr/bin/perl

use strict;
use warnings;
use Net::SCP qw( scp iscp );
my $scp = Net::SCP -> new( '192.168.1.3', 'X' );
$scp->put( 'file.jpg' ) or die $scp->{errstr};

所以我正在寻找其他方法来满足我的需求。

提前谢谢!

Kõikehääd,
WK

2 个答案:

答案 0 :(得分:0)

您不应该在本地计算机上使用用户X.用户和密码(或RSA密钥)仅用于访问远程计算机,与本地计算机无关。

我不熟悉Net :: SCP,但我熟悉Unix scp命令,它的工作原理如下:

我是用户A. 我想使用帐户X将文件复制到机器M. 我输入:

scp my_local_file.ext X @ M:/path/to/file/my_file.ext

只要我对my_local_file.ext具有读取权限,并且用户X对机器M上的目录/ path / to / file /具有写入权限,并且验证一切正常,那么一切都很好。

如果你让它为用户X工作,那么听起来你已经基本解决了这个问题。您所要做的就是将RSA密钥放在本地计算机上适合用户A,B和C的位置,然后以用户A,B或C运行脚本。

为用户设置RSA密钥的方式可能会有一些复杂因素。您将以用户X身份登录。


说了这么多,它确实听起来好像你真正需要的是远程机器上的ftp或sftp服务器。可以配置FTP以允许匿名或不受限制地访问某些区域以进行上载和/或下载。

答案 1 :(得分:0)

我终于解决了问题:我让用户通过webclient(具有用户X权限)从服务器请求从本地计算机获取文件到服务器。

相关问题