可以使用ssh,但不能使用scp。怎么样?


0

我们有这样的要求,即我们可以通过SSH相互通信,但不能使用SCP从另一台计算机复制文件。

例如,我们有两台计算机,分别是计算机1和2。我们实际上可以使用SSH彼此通信(使用终端对其进行测试,使用另一台计算机的ip地址相互ping通,反之亦然)。我们还可以使用SCP复制彼此的文件。但是后来我们有了一个要求,即computer1 不能获取文件或不能从computer2发送或向其发送。而且仍然可以使用彼此的IP地址(使用终端)相互ping通。而且,计算机2就像主计算机一样,具有从计算机1获取或发送文件的能力,而计算机1可以使用IP地址ping计算机2但不能从计算机1发送或接收任何文件。

有人可以帮助我们解决这一要求吗?我正在整个互联网上搜索,但找不到解决方案。

我应该使用什么代码?

我们的主题全都与IPTABLES有关,但是我看不到将其与IPTABLES一起使用的逻辑,或者也许我只是不知道如何配置它,或者还有其他解决方案可以建议您吗?

操作系统:Linux Centos两台计算机

谢谢。对我来说,这将是很大的帮助。


1
“使用SSH相互ping通”是什么意思?那“ computerX可以做到这一点或那件事”呢?我问是因为在SSH上下文中,您宁愿阻止或授予用户访问权限(由用户登录名确定)。还要注意,即使您以某种方式阻止了SFTP和SCP子系统,cat在远程运行或仅使用少数其他工具的能力也足以使您具有读取访问权限的任何文件。从computer1连接到computer2的用户应在computer2上受到严格限制,以使其无法获取任何文件。因此,应明确“能够相互交流”。请编辑问题。
卡米尔Maciorowski

现在,我已经对其进行了编辑,以获取更多具体信息。我在这里解释的是,必须限制另一台计算机从另一台计算机获取/发送文件。我不知道如何配置这个东西。
David

1
SCP使用SSH,就像SSH的扩展/模块一样。一切都通过SSH完成。对于iptables,您试图做的事情似乎是不可能的,因为scp使用ssh使用的相同端口,并且可以同时阻止或不阻止。其他解决方案是配置sshd_config
Fanatique

iptables当尝试启动到computer2的SSH连接时,computer2上的计算机可以阻止computer1。它将阻止任何此类连接;您不能仅阻止SCP,因为SSH连接默认情况下是加密的,并且您无法从外部确定正在使用哪个子系统。因此,无论这意味着什么,这还将使“通过SSH彼此通信的能力”中的“彼此”部分无效。
卡米尔Maciorowski

很好解释。根据以上说明,您建议使用哪种配置?
大卫

Answers:


0

我在此重申您的需求,以确保我理解。

Computer2必须能够插入到Computer1中。

Computer2必须能够将文件放入Computer1,并使用scp从Computer1获取文件。

Computer1一定不能ssh进入Computer2。

Computer1一定不能进入Computer2。

如果上述方法正确无误,那么您有两种选择。

一种选择是使用ssh键。假设在Computer1和Computer2上使用了相同的用户登录名,请在Computer2上为user-foo创建一个公用/专用密钥对。以Computer2上的user-foo身份运行以下命令:

ssh-copy-id Computer1

系统将提示您在Computer1上输入user-foo的密码。但是,一旦完成,从Computer2,user-foo将能够在不提示输入密码的情况下进入到Computer1。

您可以通过设置在Computer2上禁用密码身份验证

PasswordAuthentication no

在Computer2的sshd_config文件中,然后重新启动sshd服务。

另一个选项是在Computer2上设置防火墙规则,以防止来自Computer1的任何SSH连接。

希望这可以帮助


Computer2必须能够插入到Computer1中。Computer2必须能够将文件放入Computer1,并使用scp从Computer1获取文件。 Computer1必须能够SSH进入Computer2。 Computer1一定不能进入Computer2。从我所有的解释来看,这是正确的说法。您可以指导我配置这一配置吗,应该使用哪种配置?预先感谢您
大卫

正如Fanatique所说,scp建立在ssh之上。正如Kamil Maciorowski所说,有多种方法可以传输不需要scp的文件。例如,如果您想通过禁用scp来阻止user @ Computer1复制Computer2的/ etc / passwd文件,则user @ Computer1仍可以运行
Lewis M

抱歉,不是要尽快发布。:)
刘易斯M

需要弄清楚评论。:)无论如何,user @ Computer1可以运行,“ ssh Computer2 cat / etc / passwd> / local / copy / of / Computer2 / passwd”,仍然可以得到它的副本。因此,阻止scp但仍允许ssh似乎并不能为您带来任何好处。
刘易斯M

好吧,我明白了,谢谢您提供的有益答案。
戴维(David)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.