匹配塊中不允許使用指令“StrictModes”
我正在建構一個 Raspberry Pi ADS-B接收器網路。幾個節點放置在不同的位置:家、旅館、父母,也許還會有更多……它們都被設置為使用反向 ssh 隧道將回家的電話連接到Amazon-EC2 。
我真正想要實現的是某種方式來區分哪個節點是哪個節點以及用於 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 到該節點的本地埠?
您希望通過為它們提供不同的使用者來區分不同的連接來源。
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_config:
Match Group sshtungrp AuthorizedKeysFile /etc/ssh/tunnelkeys/%u