Match 块中不允许使用指令“StrictModes”

Match 块中不允许使用指令“StrictModes”

我正在构建 Raspberry Pi 网络ADS-B接收器。几个节点放置在不同的位置:家、小屋、父母,也许还有更多……它们都被设置为打电话回家到一个亚马逊-EC2使用反向 ssh 隧道。

我真正想要实现的是区分哪个节点是哪个节点以及用于 SSH 到该节点的本地端口的某种方式。

由于sudo netstat -tlpe --numeric-ports | grep sshd显示哪些用户正在运行该进程,我正在考虑为每个隧道分配一个用户。我只想限制 SSH 反向隧道的用户。最好我想将所有节点(多个)密钥保留在同一个文件中,并为所有其他用户authorized_keys保留。StrictModes yes

我最终运行了这些命令:

sudo groupadd sshtungrp
sudo useradd sshtunnel -m -d /home/sshtunnel -s /bin/true -g sshtungrp
while read p; do sudo useradd $p -M -d /home/sshtunnel -s /bin/true -g sshtungrp; done < users.txt;

sudo -u sshtunnel mkdir /home/sshtunnel/.ssh
sudo -u sshtunnel vim /home/sshtunnel/.ssh/authorized_keys

sudo -u sshtunnel chmod 750 /home/sshtunnel
sudo -u sshtunnel chmod 750 /home/sshtunnel/.ssh
sudo -u sshtunnel chmod 640 /home/sshtunnel/.ssh/authorized_keys

/etc/ssh/sshd_config添加了:

Match Group *,!sshtungrp
        StrictModes yes

我收到错误消息Directive 'StrictModes' is not allowed within a Match block。我如何克服这个问题,或者最终实现我的目标,即了解哪个节点是哪个节点以及用于 SSH 到该节点的本地端口?

答案1

您希望通过为不同的连接源提供不同的用户来区分它们。在这些不同的用户之间共享authorized_keys文件是没有意义的,因为任何密钥都将允许登录到任何帐户。 (它会工作,但帐户分离不会带来任何安全优势。)

因此,authorized_keys每个用户都有一个属于 root 的文件。每个authorized_keys文件仅授权与该帐户对应的密钥。创建多个密钥很便宜,没有理由不这样做。你不需要关闭StrictModes。您可以AuthorizedKeysFile在每个用户的块中使用该指令Match,或者使用一个包含由用户名替换的AuthorizedKeysFile指令。%u

隧道用户创建:

sudo groupadd sshtungrp
sudo mkdir /etc/ssh/tunnelkeys # or wherever you want to keep them
# Add users without /home
while read p; do sudo useradd $p -r -s /bin/true -g sshtungrp; done < users.txt;
# Copy key file with: sudo vim /etc/ssh/tunnelkeys/%u

sshd_配置:

Match Group sshtungrp
        AuthorizedKeysFile /etc/ssh/tunnelkeys/%u

相关内容