python实现ssh 访问linux server

背景介绍

在日常工作中我们经常需要访问linux server来获取server 信息 。如果使用python,可以通过python的ssh功能编写日常脚本来进行server的维护工作

功能实现

首先安装paramiko模块
python进行ssh操作需要用到paramiko模块,paramiko是python的三方ssh模块,通过socket实现了ssh功能。

pip install paramiko

ssh 代码示例

import paramiko
hostip = "192.168.1.100",
Port= 22,
user= "root",
pwd = "root"
 
#创建一个ssh的客户端,用来连接服务器
ssh = paramiko.SSHClient()
#创建一个ssh的白名单
know_host = paramiko.AutoAddPolicy()
#加载创建的白名单
ssh.set_missing_host_key_policy(know_host)
 
#连接服务器
ssh.connect(hostname=hostip , port=PORT, username=user, password=pwd)
 
#执行命令
stdin,stdout,stderr = ssh.exec_command("ls /root/")
#stdin  标准格式的输入,是一个写权限的文件对象
#stdout 标准格式的输出,是一个读权限的文件对象
#stderr 标准格式的错误,是一个写权限的文件对象
 
print(stdout.read().decode())
ssh.close()

sftp

文件上传与下载

    import paramiko
     
    trans = paramiko.Transport(
        sock=("192.168.1.100",22)
    )
     
    trans.connect(
        username="root",
        password="root"
    )
    sftp = paramiko.SFTPClient.from_transport(trans)
     
    #上传
    #把本地的文件settings.py,上传到远端为/root/Desktop/settings.py
    sftp.put("helloworld.py","/root/helloworld.py")
     
     
    #下载
    #从远程/root/download.py获取文件下载到本地名称为hh.py
    # sftp.get("/root/download.py","download.py")
    

shell交互式连接

import paramiko
hostip = "192.168.1.100",
Port= 22,
user= "root",
pwd = "root"
#创建一个ssh的客户端
ssh = paramiko.SSHClient()
#创建一个ssh的白名单
know_host = paramiko.AutoAddPolicy()
#加载创建的白名单
ssh.set_missing_host_key_policy(know_host)
#连接服务器
ssh.connect(hostname=hostip , port=PORT, username=user, password=pwd)
 
shell = ssh.invoke_shell()
shell.settimeout(1)
 
command = input(">>>"+"\n")
shell.send(command)
while True:
    try:
        recv = shell.recv(512).decode()
        if recv:
            print(recv)
        else:
            continue
    except:
        command = input(">>>") + "\n"
        shell.send(command)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值