import paramiko
from paramiko import util
def ssh_connect(hostname, port, username, password):
"""
创建连接
:param hostname: 远程主机名
:param port: 端口
:param username: 用户名
:param password: 密码
:return:
"""
# 发送paramiko日志到test.log文件
paramiko.util.log_to_file('test.log')
# 创建一个SSH客户端client对象
ssh = paramiko.SSHClient()
# 获取客户端host_keys,默认~/.ssh/known_hosts,
# 非默认路径需指定ssh.load_system_host_keys(/xxx/xxx)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# ssh.load_system_host_keys()
# 创建SSH连接
ssh.connect(hostname=hostname, port=port, username=username, password=password)
return ssh
def exe_cmd(ssh, cmd):
"""
执行命令
:param ssh: SSH连接
:param cmd: 需要执行的命令
:return:
"""
# 调用远程执行命令方法exec_command()
stdin, stdout, stderr = ssh.exec_command(cmd)
# 打印命令执行结果,得到Python列表形式,可以使用stdout_readlines()
res = stdout.read().decode('utf-8')
print("执行结果:", res)
err = stderr.read().decode('utf-8')
if err:
print("错误信息:", err)
def main():
hostname = '192.168.3.190'
username = 'aware'
password = 'aware'
port = 22
ssh = ssh_connect(hostname, port, username, password)
while True:
cmd = input("请输入需要执行的命令:").strip()
if cmd == 'q':
break
else:
exe_cmd(ssh, cmd)
# 关闭连接
ssh.close()
if __name__ == '__main__':
main()