Cám ơn JanC, tôi đã thêm một số thay đổi ví dụ và thử nghiệm trong Python3, nó thực sự hữu ích cho tôi.
import paramiko
import getpass
pw = getpass.getpass()
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
#client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
def start():
try :
client.connect('127.0.0.1', port=22, username='ubuntu', password=pw)
return True
except Exception as e:
#client.close()
print(e)
return False
while start():
key = True
cmd = input("Command to run: ")
if cmd == "":
break
chan = client.get_transport().open_session()
print("running '%s'" % cmd)
chan.exec_command(cmd)
while key:
if chan.recv_ready():
print("recv:\n%s" % chan.recv(4096).decode('ascii'))
if chan.recv_stderr_ready():
print("error:\n%s" % chan.recv_stderr(4096).decode('ascii'))
if chan.exit_status_ready():
print("exit status: %s" % chan.recv_exit_status())
key = False
client.close()
client.close()
Thực sự đánh giá cao câu trả lời của bạn !! Tôi đã sử dụng nó trong dự án của tôi. Cảm ơn bạn rất nhiều. Cho đến nay tôi có thể sử dụng paramiko thay vì gói ssh lệnh hệ thống trong lập trình với python. – Beyonder
Nó chỉ là một cái gì đó tôi đặt lại với nhau bằng cách nhìn vào nguồn của SSHClient, vì vậy nó có thể không được * tối ưu *. BTW: nếu điều này làm những gì bạn muốn, bạn có thể muốn "chấp nhận" câu trả lời của tôi. – JanC
Liên kết chết Vui lòng cập nhật –