知道为什么 SFTP 的工作方式会根据客户端计算机/网络而有所不同吗?

知道为什么 SFTP 的工作方式会根据客户端计算机/网络而有所不同吗?

我遇到了一个奇怪的情况。

从计算机 A 使用 PSFTP.EXE(putty sftp 客户端)我可以连接到远程 sftp 服务器并使用 dir 和 chdir 进行浏览。如果我尝试得到或者文件时出现权限错误。

从计算机 B 使用 PSFTP.EXE(相同版本),我可以使用相同凭据连接到相同服务器,并使用 dir、chdir 进行浏览以及获取/放置工作。

唯一的区别是计算机 A 位于防火墙后面,防火墙阻止了传出流量。防火墙管理员为我打开了端口 22。在此之前我甚至无法连接。

我很困惑,因为显然数据是双向流动的(目录列表返回数据)。而且我知道我连接到的是同一台服务器(计算机 B 放置的文件显示在计算机 A 的目录列表中)

我可以让防火墙管理员看看是否有东西允许这种行为?
即允许连接,允许 dir&chdir,但拒绝文件传输 get/put?实际上,所有文件更改都被拒绝(mv、ren、rm 等)

我知道这听起来像是服务器上的权限问题,但如果是这种情况,我预计计算机 B 也会遇到同样的问题,而且它绝对没有问题。

编辑#1

Here is Computer A's session details: (slightly changed to protect sensitive data)

psftp> open servername.com
Looking up host "servername.com"
Connecting to x.x.x.x port 22
**Server version: SSH-2.0-OpenSSH_4.6**
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 1024 
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
login as: username
password:
Sent password
Access granted
Opened channel for session
Started a shell/command
Connected to servername.com
Remote working directory is /


Here is Computer B's session details: (slightly changed to protect sensitive data)

psftp> open servername.com
Looking up host "servername.com"
Connecting to x.x.x.x port 22
**Server version: SSH-2.0-0.0**
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-dss 1024 ...
Initialised AES-256 CBC client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 CBC server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 0 SSH-2 keys
login as: username
password:
Sent password
Access granted
Opened channel for session
Started a shell/command
Connected to servername.com
Remote working directory is /

答案1

防火墙无法阻止使用 SFTP 的单个下载/上传。连接已加密。防火墙无法看到客户端和服务器之间发生的事情,更不用说干预了。防火墙所能做的就是阻止整个连接,但不能阻止单个操作。

但是 SFTP 服务器可以根据客户端 IP 地址阻止下载/上传。例如,ProFTPDmod_sftp允许(使用Allow指示)。


从您提供的日志中可以明显看出,您每次都连接到不同的服务器。虽然可能是同一台物理服务器,但肯定是不同的 SSH 服务器。即使您连接到相同的 IP 地址和端口,也可能是防火墙根据您的本地 IP 地址将您路由到不同的端口(显然甚至是不同的 IP 地址,但您声称情况并非如此)。

相关内容