python模拟ssh登录

发布时间:2019-09-18 07:21:29编辑:auto阅读(1865)

    首先更新pip 然后安装 pycrypto 、 paramiko;pycrypto是paramiko的内部依赖模块

    pip3.7 install --upgrade pip
    pip3.7 install --upgrade pycrypto
    pip3.7 install --upgrade paramiko

    paramiko的api文档可以访问 http://docs.paramiko.org/en/2.4/

    下面是ssh登录实例

    #!/usr/local/bin/python3.7
    import paramiko
    
    #创建paramiko的SSH客户端
    client = paramiko.client.SSHClient()
    
    #设置本地主机无主机的key时的策略,
    #这里使用paramiko.client.AutoAddPolicy这个策略,就是自动添加主机名及新主机key到本地的HostKeys对象。
    client.set_missing_host_key_policy(paramiko.client.AutoAddPolicy())
    
    #connect连接的方法可参考这里
    #connect(hostname, port=22, username=None, password=None, pkey=None, 
    #key_filename=None, timeout=None, allow_agent=True, look_for_keys=True, 
    #compress=False, sock=None, gss_auth=False, gss_kex=False, gss_deleg_creds=True, 
    #gss_host=None, banner_timeout=None, auth_timeout=None, gss_trust_dns=True, passphrase=None)
    clent.connect('127.0.0.1',port=22,username='root',password="okokokok")
    
    #exec_command(command, bufsize=-1, timeout=None, get_pty=False, environment=None)¶
    stdin,stdout,stderr = client.exec_command('ls -l',timeout=60)
    
    #读取输出结果
    result = stdout.read()
    
    #把bite转成string 这样看的输出更整洁
    result = result.decode();
    #打印结果
    print(result)
    #关闭ssh连接
    client.close()
    

关键字