Eu tenho uma situação estranha.
No computador A com PSFTP.EXE (cliente putty sftp), posso me conectar a um servidor sftp remoto e usar dir e chdir para navegar. Se eu tentarpegaroucolocararquivos, recebo um erro de permissão.
No Computador B com PSFTP.EXE (mesma versão), posso me conectar ao MESMO servidor com as MESMAS credenciais e usar dir, chdir para navegar e também obter/colocar trabalho.
A única diferença é que o Computador A está protegido por um firewall que bloqueia o tráfego de saída. O administrador do firewall abriu a porta 22 para mim. Antes disso eu não conseguia nem me conectar.
Estou confuso porque obviamente os dados estão fluindo em ambas as direções (as listagens de diretórios retornam dados). E eu sei que estou me conectando ao mesmo servidor (os arquivos colocados pelo computador B aparecem nas listagens de diretórios do Computador A)
Há algo que eu possa pedir ao administrador do firewall que permita tal comportamento?
ou seja, conexões são permitidas, dir&chdir são permitidas, mas as transmissões de arquivos get/put são negadas? na verdade, todas as alterações de arquivo são negadas (mv, ren, rm, etc)
Eu sei que parece um problema de permissão no servidor, mas se fosse esse o caso, esperaria que o Computador B tivesse o mesmo problema e não teria absolutamente nenhum problema.
Editar #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 /
Responder1
O Firewall não pode bloquear downloads/uploads individuais com SFTP. A conexão é criptografada. O firewall não pode ver o que está acontecendo entre o cliente e o servidor e muito menos intervir de qualquer maneira. Tudo o que o firewall pode fazer é bloquear toda a conexão, mas não operações individuais.
Mas o servidor SFTP pode bloquear downloads/uploads com base no endereço IP do cliente. Por exemplo, o ProFTPD mod_sftp
permite que (usandoAllow
diretiva).
Pelos logs que você forneceu, é óbvio que você está se conectando a um servidor diferente a cada vez. Embora possa ser o mesmo servidor físico, é definitivamente um servidor SSH diferente. Mesmo se você estiver se conectando ao mesmo endereço IP e porta, pode ser o firewall que o encaminha para uma porta diferente (até mesmo um endereço IP diferente, obviamente, mas você afirma que não é o caso) com base no seu endereço IP local.