![运行两个 SSH 服务器](https://linux22.com/image/517949/%E8%BF%90%E8%A1%8C%E4%B8%A4%E4%B8%AA%20SSH%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
标题中提到的这个可以实现吗?我想为 SFTP 客户端运行一个 SSH 服务器(在其他端口上,例如 2121),还想为 SSH 客户端运行其他 SSH 服务器,这些服务器只允许使用密钥登录。有人知道如何实现吗?
谢谢
答案1
使用单独的配置文件并启动指定配置文件的其中一个服务器。要使用不同的文件,请使用-f
选项,后跟要使用的配置文件。
如果要使其持久化,则需要创建init.d
启动 sshd 的脚本副本,并对其进行修改以使用不同的 pid 和新的配置文件。较新的发行版使用不同的systemd
控制文件,因此您需要为其创建新的副本。
您可能可以通过单个 sshd 和一个Match
块来实现您想要的功能。(如 joschi 所述)。您需要将其他端口和/或地址添加到配置中。Match 只允许更改某些属性。请参阅文档以了解sshd.config
命令可能输出的内容man sshd_config
。您的 match 行可能如下所示:
Match LocalPort 1022
答案2
除了 BillThor 发布的解决方案(使用两个单独的配置文件)之外,你可能需要检查Match
以下指令sshd_配置(5)可以用于根据用户/组/客户端 IP 地址应用不同的配置。
答案3
一种选择是使用带有 Alpine Linux 和 OpenSSH 的 Docker 容器。生成的映像大小不到 20MB,如果使用得当,额外的间接级别还可以提高安全性(如果它是面向互联网的服务器)。您sshfs
还可以选择性地挂载远程文件系统。