Я использую paramiko
для создания собственного sftp сервера.Пока что я использую аутентификацию RSA и могу подключиться к моему серверу с клиента, используя файл key
.Но теперь я хочу определить, какой клиент подключается, и сопоставить их с конкретными папками.Вот мой server.py
Я пытался создать папку в handle_client()
, но безуспешно.Как я могу достичь этого?Пожалуйста, помогите мне
class Server(paramiko.ServerInterface):
def __init__(self):
self.event = threading.Event()
def check_channel_request(self, kind, chanid):
if kind == 'session':
return paramiko.OPEN_SUCCEEDED
return paramiko.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
def check_auth_publickey(self, username, key):
if (username == 'zorig') and (key == paramiko.RSAKey(filename='open.key')):
return paramiko.AUTH_SUCCESSFUL
return paramiko.AUTH_FAILED
def handle_client(client_socket):
while True:
request = client_socket.recv(1024)
if re.search(b'(exit)', request):
# client_socket.close()
client_socket.sendall(b'exiting')
break
elif len(request) > 0:
print('[*] Received: ', request)
o_put = subprocess.check_output(request.decode(), shell=True)
client_socket.sendall(o_put)