python3:使用paramiko交互

发布时间:2019-09-27 07:07:17编辑:auto阅读(1590)

    小程序如下:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import paramiko
    RED_COLOR='\033[1;31;48m'  #红 ,配置终端输出的颜色
    BLUE_COLOR='\033[1;34;48m'  #蓝 ,配置终端输出的颜色
    RES='\033[0m'
    def SSH_Pkey(Host,UserName,Pkey,Port=22):
        #基于用户名密钥连接并执行命令
        try:
            private_key = paramiko.RSAKey.from_private_key_file(Pkey)
            # 创建SSH对象
            SSH = paramiko.SSHClient()
            # 允许连接不在know_hosts文件中的主机
            SSH.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            # 连接服务器
            SSH.connect(hostname=Host, port=Port, username=UserName,key_filename=Pkey)
            # 执行命令
            print ("%s成功登录到服务器%s,请输入操作命令!%s"%(RED_COLOR,Host,RES) )
            while True:
                CMD=input('%s请输入输入操作命令:%s'%(BLUE_COLOR,RES))
                if CMD=='exit':
                    print ("%s执行%s命令退出!%s" %(RED_COLOR,CMD,RES))
                    # 关闭连接
                    SSH.close()
                    break
                else:
                    stdin, stdout, stderr = SSH.exec_command(CMD)
                    print ("%s执行命令%s返回结果:%s"%(RED_COLOR,CMD,RES))
                    for i in stdout.read().splitlines():
                        print (i.decode('utf-8'))
        except :
            print ("%sSSH远程登录失败,退出程序!\n" %(RED_COLOR,RES ))
    
    if __name__ == '__main__':
        Host='59.1.1.1'
        UserName='root'
        SSH_Key=r'D:\Identity2048'
        Port = 6382
        SSH_Pkey(Host=Host,UserName=UserName,Pkey=SSH_Key,Port=Port)


    效果图如下:

    wKioL1gyVV7QAVN7AAJYYSFllUI099.jpg-wh_50

关键字