Я использую Python 3.6.6 и мне нужно установить SSH-соединение с сервером.
У меня есть IP-адрес и порт для сервера, и я использую свои учетные данные для входа, обычно через putty. Серверы на Linux / Suse.
Мне нужно получить список каталогов в папке сервера и скопировать содержимое одного из файлов. Я использую paramiko, и мне нужно, чтобы соединение было открыто, чтобы я мог выполнять и взаимодействовать с сервером.
Я не уверен, что я достаточно ясен.
Ниже мой код
import paramiko
nbytes = 4096
hostname = '123.123.123.123'
port = 22020
username = 'uname'
password = 'pwd'
command = 'vi log'
client = paramiko.Transport((hostname, port))
client.connect(username=username, password=password)
stdout_data = []
stderr_data = []
session = client.open_channel(kind='session')
session.exec_command(command)
while True:
if session.recv_ready():
stdout_data.append(session.recv(nbytes))
if session.recv_stderr_ready():
stderr_data.append(session.recv_stderr(nbytes))
if session.exit_status_ready():
break
print ("rec status: ", session.recv_ready())
print ("exit status: ", session.recv_exit_status())
print ("".join(stdout_data))
print ("".join(stderr_data))
session.close()
client.close()