yum install python-devel -y && pip install paramiko

运行报错
AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
找到 /usr/lib64/python2.6/site-packages/Crypto/Util/number.py
注释
#if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
)
#!/usr/bin/env python
#coding:utf-8
import paramiko
import sys

hostname = sys.argv[1]
username = 'root'
passwd = sys.argv[2]
paramiko.util.log_to_file('syslogin.log') # 发送 paramiko 日志到 syslogin.log 文件

#SSH
ssh=paramiko.SSHClient() # 创建一个 ssh 客户端 client 对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #自动添加主机名及主机密钥到本地HostKeys对象,
并将其保存,不依赖load_sys-tem_host_keys()的配置,即使~/.ssh/known_hosts不存在也不产生影响;
ssh.load_system_host_keys() # 获取客户端 host_keys ,默认 ~/.ssh/known_hosts ,非默认路径需指定

#密码方式连接
ssh.connect(hostname=hostname,username=username,password=passwd) # 创建 ssh 连接

#密钥key方式连接
privatekey = os.path.expanduser('~/.ssh/id_rsa')  #定义私钥存放路径 返回用户家目录,/root.id_rse
key = paramiko.RSAKey.from_private_key_file(privatekey)  #创建私钥对象
ssh.connect(hostname=hostname,username=username,pkey = key)

stdin,stdout,stderr=ssh.exec_command('free -m') # 调用远程执行命令方法 exec_command()
print stdout.read() # 打印命令执行结果,得到 Python 列表形式,可以使用 stdout.readlines()
ssh.close() # 关闭 ssh 连接

try:
    #SFTP
    t = paramiko.Transport((hostname,22))
    t.connect(username=username, password=passwd)
    sftp = paramiko.SFTPClient.from_transport(t)

    localpath='/root/mylog.txt'
    remotepath='/tmp/mylog.txt'
    sftp.put(localpath,remotepath) #上传

    sftp.get(remotepath, localpath) #下载

    #SFTP其他方法
    sftp.mkdir("/home/userdir",0755)
    sftp.rmdir("/home/userdir")
    sftp.rename("/home/test.sh","/home/testfile.sh")
    sftp.stat("/home/testfile.sh")
    sftp.listdir("/home")
    t.close()
except Exception , e:
    print str(e)

results matching ""

    No results matching ""