ssh 可以使用,但 scp 无法使用。怎么办?

ssh 可以使用,但 scp 无法使用。怎么办?

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

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

有人能帮我们满足这个要求吗?我在网上搜索了好久,还是没找到解决办法。

我应该使用什么代码?

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

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

谢谢。这对我有很大帮助。

答案1

我在这里重申您的需求以确保我理解。

Computer2 必须能够 ssh 进入 Computer1。

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

Computer1 一定不能通过 ssh 进入 Computer2。

Computer1 一定不能通过 scp 进入 Computer2。

如果以上内容准确,那么您有几个选择。

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

ssh-copy-id Computer1

系统将提示您在 Computer1 上输入用户 foo 的密码。完成此操作后,从 Computer2,用户 foo 将能够通过 ssh 进入 Computer1,而无需输入密码。

您可以通过设置来禁用 Computer2 上的密码验证

PasswordAuthentication no

在 Computer2 的 sshd_config 文件中并重新启动 sshd 服务。

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

希望这可以帮助

相关内容