首页 > 系统相关 >python ssh Linux机器 paramiko库的简单使用

python ssh Linux机器 paramiko库的简单使用

时间:2023-04-11 16:15:04浏览次数:50  
标签:timeout python ip ssh key Linux paramiko

python ssh Linux机器 paramiko库的简单使用

以用户名密码方式连接Linux主机

def conn_by_password():
    """
    1)
    如果抛出异常:SSHException: Server '172.17.140.17' not found in known_hosts
    则需要设置ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    用来自动保存到ip到known_hosts文件中


    2)
    如果抛出异常:paramiko.ssh_exception.AuthenticationException: Authentication failed.
    则大概率是认证失败 用户名密码错误导致

    3)
    如果抛出异常:NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 172.17.140.17
    则大概率是linux机器的sshd服务未启动
    """
    ssh = paramiko.SSHClient()
    ip = "172.17.140.17"
    port = 22
    username = "root"
    passwd = "abc123"
    timeout = 5
    # 自动保存IP到known_hosts文件中, 否则可能抛出异常
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip, port, username, passwd, timeout=timeout)
    print(f"连接成功:{ip}")
    return ssh
    # ssh.close()
    # print("关闭成功")

以用户名私钥方式连接Linux主机

def conn_by_private_key():
    """
    1)
    如果抛出异常:SSHException: not a valid RSA private key file
    则给定的文件不是私钥文件


    2)
    如果抛出异常:paramiko.ssh_exception.AuthenticationException: Authentication failed.
    则大概率是认证失败 可能公钥没有放到Linux主机
    """
    ssh = paramiko.SSHClient()
    ip = "172.17.140.17"
    port = 22
    username = "root"
    filename = r"C:\Users\dell\.ssh\id_rsa"
    timeout = 5
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    key = paramiko.RSAKey.from_private_key_file(filename)
    ssh.connect(ip, port, username, pkey=key, timeout=timeout)
    print(f"连接成功:{ip}")
    return ssh
    # ssh.close()
    # print("关闭成功")

执行Linux命令

def exec_cmd(cmd: str, ssh: paramiko.SSHClient):
    cmd = cmd.strip()
    _, out, err = ssh.exec_command(cmd)
    out = out.read().decode()
    err = err.read().decode()
    return out, err

github

标签:timeout,python,ip,ssh,key,Linux,paramiko
From: https://www.cnblogs.com/rainbow-tan/p/17306549.html

相关文章

  • python爬虫案列11:爬取双色球历史开奖记录并存储到mysql
    开始之前要先在MySQL创建一个名为spider的数据库,在里面创建一个名caipiao的表,表里面三个字段,data,red,blue点击查看代码importrequestsimportpymysqlfromlxmlimportetree#连接数据库conn=pymysql.connect(host='localhost',port=3306,user='root',password='......
  • Linux 操作系统启动过程
    当接通电源,硬件通过一系列自检完成后,硬件把控制权转交给操作系统后Linux系统启动过程可以分为5个阶段:加载内核。运行init。系统初始化。建立终端。用户登录系统。init程序的类型:SysV: init,CentOS5之前,配置文件:/etc/inittab。Upstart: init,CentOS6,配置文......
  • Cacti监控远程linux机器配置(被监控端)
    一、被监控机安装snmpyum-yinstallsnmp二、被监控机的配置vi/etc/snmp/snmpd.conf做以下更改: 1、找到com2sec notConfigUser  default       public 改为:com2sec notConfigUser   192.168.1.1(改成监控服务器的ip)       public 2、找到access......
  • 爬虫案列10:python 连接mysql
    importpymysql#打开数据库连接db=pymysql.connect(host='localhost',user='root',password='root',database='pikachu',port=3306......
  • 使用Xshell远程连接Linux服务器
     https://blog.csdn.net/weixin_48016395/article/details/123190779?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-123190779-blog-129054565.235^v28^pc_relevant_default&spm=1001.2101.3001.4242.2&utm_rele......
  • Linux 04 文件操作
    文件查看$cat小文件$more小/大文件$head-n15filename开头$tail-n15filename结尾#tr转换命令,需要使用管道和通配符$catanaconda-ks.cfg|tr[a-z][A-Z]将文件中所有小写转换为大写$wc统计$wc-lanaconda-ks.cfg$wc-wanaconda-ks.cfg$wc-c......
  • Linux 上 定时备份 postgresql 数据库
    Linux上定时备份postgresql数据库为了避免操作数据库的风险因此计划每天对postgresql数据库进行定时备份1.服务器地址:备份服务器地址10.10.10.101(虚构)postgresql数据库所在的服务器地址10.10.10.100(虚构)因为我有单独的备份数据库不在同一个服务器上操作首先要保证这......
  • python 判断文件是否传输完成
    思路,判断文件大小是否有改变(绝大多数情况可以)defis_completed(self,file_path):file_size=-1whilefile_size!=os.path.getsize(file_path):file_size=os.path.getsize(file_path)time.sleep(1)todo(file_path)......
  • Python的安装
    Python官网下载地址:https://www.python.org/downloads/  开始安装:最下方红色框打钩 自定义安装路径:  验证: ......
  • ssh-keygen
    主机密钥主机密钥通常在安装SSH服务器时自动生成。它们可以随时再生。$ls-l/etc/ssh/total548-rw-r--r--1rootroot505426Feb262022moduli-rw-r--r--1rootroot1650Feb262022ssh_configdrwxr-xr-x2rootroot4096Feb262022ssh_config.d-r......