paramiko建立无密码传输认证

[email protected]:~# python -V
Python 3.4.3

#!/usr/bin/python
# -*- coding:utf-8 -*-
import paramiko
import sys,os
home_dir=os.path.expanduser(‘~‘)
id_rsa_pub=‘%s/.ssh/id_rsa.pub‘ % home_dir
if not id_rsa_pub:
    print(‘id_rsa.pub error!‘)
    sys.exit(0)
def upload_file(hostname,port,user,passwd):
    try:
        s=paramiko.SSHClient()
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        s.connect(hostname,port,user,passwd)
        t=paramiko.Transport((hostname,port))
        t.connect(username=user,password=passwd)
        sftp=paramiko.SFTPClient.from_transport(t)
        print(‘create Host:%s .ssh dir......‘ %hostname)
        stdin,stdout,stderr=s.exec_command(‘mkdir ~/.ssh‘)
        print(‘upload id_rsa.pub to Host: %s.....‘ %hostname)
        sftp.put(id_rsa_pub,"/tmp/temp_key")
        stdin,stdout,stderr=s.exec_command(‘cat /tmp/temp_key >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f /tmp/temp_key‘)
        print(‘host:%[email protected]%s auth success!\n‘ %(user,hostname))
        t.close()
        s.close()
    except Exception as e:
        import traceback
        traceback.print_exc()
        try:
            t.close()
            s.close()
        except:
            pass
def run():
    with open(‘host.txt‘,‘r‘) as f:
        for i in f:
            f1 = i.split()
            hostname,port,user,passwd = f1
        upload_file(hostname,int(port),user,passwd)
if __name__ =="__main__":
    run()
[email protected]:/data/python_test# cat host.txt 
192.168.31.162		22	root		123456
192.168.31.130		22	root		123456
时间: 2024-08-04 15:44:11

paramiko建立无密码传输认证的相关文章

使用rsync无密码传输

众多数据库服务器的管理过程中,在不同服务器间的文件传输是免不了的.您可以使用scp命令或FTP方法完成文件的发送和接收,这篇文章我将给大家介绍另外一种方法,这就是rsync命令.rsync是文件传输程序,它的功能和算法描述可以参考维基百科中的介绍.参考链接:http://zh.wikipedia.org/zh-cn/Rsync 我来通过实验给大家展示一下rsync命令的常用方法.这里我们演示使用的操作系统是Linux,rsync已经预装好.如果是AIX操作系统,需要单独在IBM网站下载安装包安装

wifi通信过程的研究--(2)Wifi传输认证过程

二. Wifi传输认证过程 (一).终端与路由器认证过程 1.无线扫描 用户接入过程首先需要通过主动/被动扫描,再通过认证和关联 两个过程后才能和AP建立连接. 2.认证过程 为防止非法用户接入,首先需要在用户和AC/FATAP /Gateway之间建立认证,认证机制包括两种.只有通过认证后才能进入关联阶段. – 无加密认证 以 SSID (Service Set ID)作为最基本的认证方式. 开放系统认证 封闭系统认证 – 共享密钥认证 使用共享密钥的方式进行身份认证,采用WEP(Wired 

python连接MongoDB(无密码无认证)

无密码无认证下连接 from pymongo import MongoClient host = '127.0.0.1' # 你的ip地址 client = MongoClient(host, 27017) # 建立客户端对象 db = client.mydb # 连接mydb数据库,没有则自动创建 myset = db.testset # 使用test_set集合,没有则自动创建 myset.insert({"name":"zhangsan","age&

Linux之间建立信任,即无密码传输文件

1.基本场景 基本场景是想从一台Server服务器直接登录另一台,或者将Server服务器的数据不需密码验证直接拷贝至Client服务器,以下我们简称Server服务器为S(待发送的数据文件在这台服务器上),Client服务为C,信任关系的最简单操作方法如下: 2.步骤 2.1 在S服务器上,进入当前用户根目录下的隐藏目录 .ssh,命令如下: cd ~/.ssh (注:目录名前的点好"."表示该文件夹是一个特殊的隐藏文件夹,ls命令下默认是看不到的,通过 ls –a 命令观察到) 2

ssh无密码登录认证失败

http://www.2cto.com/os/201401/271150.html https://unix.stackexchange.com/questions/36540/why-am-i-still-getting-a-password-prompt-with-ssh-with-public-key-authentication 当配置完所有的ssh后,仍然ssh无密码登陆失败. 1. 检查.ssh目录权限和.ssh/下面所有文件的权限,参照以上链接2. 2. 也要检查/root的权限c

Linux实现scp无密码传输

主机A 生成密钥 ssh-keygen -t rsa 一路回车(默认生成) cd /root/.ssh 进入密钥目录 scp id_rsa.pub [email protected]主机IP:/root/.ssh/authorized_keys rm -rf id_rsa.pub 主机B ssh-keygen -t rsa 一路回车(默认生成) cd /root/.ssh scp id_rsa.pub [email protected]主机IP:/root/.ssh/authorized_key

Python之paramiko基础

一.Paramiko模块 paramiko是一个自由和开放源码模块使用,实现SSH2协议安全(认证和加密)连接到远程计算机. 二.windwos下安装paramiko模块 #在DOS命令行执行如下命令 pip3 install paramiko  三.在centos下安装paramiko模块 1)下载paramiko安装包: https://pypi.python.org/packages/source/p/paramiko/paramiko-1.14.0.tar.gz 2)解压缩文件 tar

Linux服务器集群架构部署搭建(三)NFS文件系统、SSH通道建立、批量分发管理(1)

命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想.  作者:燁未央_Estelle声明:测试学习,不足之处,欢迎指正. 第一章 NFS共享服务器的企业应用 1.1 NFS服务--静态数据存储 NFS是(Network File System)主要功能是通过网络让不同的设备端之间可以彼此共享文件或目录.NFS客户端(一般为应用服务器,如WEB)可以通过挂载(mount)方式,将NFS客户端本地系统中(就是一个挂载点)从NFS服务器端共享的数据文件目

python模块paramiko与ssh

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BSD, MacOS X, Windows等平台通过SSH从一个平台连接到另外一个平台.利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输. 一.安装 paramiko模块依赖PyCrypto模块,而PyCrypto需要GCC库编译,不过一般发行版的源里带有该模块.centos6,直接借助以下命令可以直接完成安装