一台服务器上有两个 SFTP 实例

一台服务器上有两个 SFTP 实例

我有一台服务器,需要从两个不同位置导入外部数据。一个位置自动发送数据,另一个位置由不同的用户提供数据。

我希望上传数据的用户看不到自动发送的数据。

因此我考虑在主服务器上创建两个 SFTP 实例(每个实例附加到特定用户)。

我想知道这是否可能?

如果是,我该如何配置 /etc/ssh/sshd_config 来声明两个用户和分配给他们的两个 SFTP 插槽?

答案1

以下是我的问题的解决方案:

# Creation of the SFTP directory
sudo mkdir -p /var/sftp
sudo chown root:root /var/sftp
sudo chmod 751 /var/sftp

# Creation of the user
sudo useradd --system --shell /usr/sbin/nologin --groups sftp --home /var/sftp/user1 user1

sudo useradd --system --shell /usr/sbin/nologin --groups sftp --home /var/sftp/user2 user2

# Creation of the folders
sudo mkdir -p /var/sftp/{user1,user2}

sudo chown root:sftp /var/sftp/user1
sudo chmod 751 /var/sftp/user1
sudo mkdir /var/sftp/user1/files
sudo chown user1:sftp /var/sftp/user1/files
sudo chmod 751 /var/sftp/user1/files

sudo chown root:sftp /var/sftp/user2
sudo chmod 751 /var/sftp/user2
sudo mkdir /var/sftp/user2/files
sudo chown user2:sftp /var/sftp/user2/files
sudo chmod 751 /var/sftp/user2/files

# Server setup
echo -e "\nMatch group sftp" | sudo tee -a /etc/ssh/sshd_config
echo -e "\tChrootDirectory /var/sftp/%u" | sudo tee -a /etc/ssh/sshd_config
echo -e "\tAllowTcpForwarding no" | sudo tee -a /etc/ssh/sshd_config
echo -e "\tX11Forwarding no" | sudo tee -a /etc/ssh/sshd_config
echo -e "\tForceCommand internal-sftp" | sudo tee -a /etc/ssh/sshd_config

sudo systemctl reload ssh

# Password creation
echo "user1:password" | sudo chpasswd
echo "user2:password" | sudo chpasswd

相关内容