由于各种原因,我需要一次只允许一个 SSH 连接到服务器specificuser
,并且当他们登录时,需要立即执行命令,限制他们可以做的事情。
因此我创建了一个脚本/usr/local/bin/limit-sshd
(基于这个问题和答案) 在建立 SSH 连接时执行(使用ForceCommand
in /etc/ssh/sshd_config
),非常简单,如下所示
#!/bin/bash
if [[ $USER == specificuser ]]
then
/run/this/command
else
...
fi
现在创建此功能的用例包括将文件传输到服务器,您通常可以使用 SFTP 客户端(例如)来实现pscp
。
我在 Windows 机器上使用 PuTTY,并且有一个configuration
用于我需要访问的服务器的配置;配置包括共享 SSH 连接。我可以登录到机器。然后在我的 Windows 命令行上尝试
pscp -load configuration c:\path\to\file_to_copy specificuser@<server IP>:/path/to/destination
这对于没有上述限制的用户有效,但会失败
FATAL ERROR: Received unexpected end-of-file from server
我认为这是由于通过 SSH 连接传递的某些命令由于我上面的设置而导致服务器无法处理。
(如何)我可以通过此连接启用文件传输?