您的位置:首页 > 运维架构 > Linux

Windows通过Python登录Linux服务器 ----SSH

2015-10-08 14:58 525 查看

Windows通过Python登录Linux服务器 —-SSH

最近由于工作需要,要通过Python登录Linux服务器,并进入到特定的目录,运行脚本生成一个文件,然后把文件取回本地,服务器为了安全,没有开户Telnet服务,所以只能通过SSH进行登录
直接贴代码,下面再解释:


#!/usr/bin/python
import paramiko
import os

#当前脚本路径
CUR_PATH = os.path.dirname(__file__)

#服务器ip
Host='10.11.13.19'
Port=22
#登录用户名
Username='XXX'
#登录密码
Password='XXX'
#登录服务器后执行的命令
Command = ['cd workdir/gary/numen/Bata; ./create_version_files.sh 16']
#本地PC路径
WinPath = CUR_PATH + '\\config.zip'
#服务器上的路径
LinuxPath = '/home/ding/workdir/gary/numen/Bata/packet/config.zip'

def ssh_exec_cmd(command):
'''SSHA远程登录:Windows客户端连接Linux服务器,并输入指令'''

#登录服务器
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(Host, Port, Username, Password)

#执行命令
for i in range(len(command)):
send_str = command[i] + '\n'
stdin, stdout, stderr = ssh.exec_command(send_str)
err = stderr.readlines()
out = stdout.readlines()
if (err):
print ('error:')
print (err)
#print (out)
else:
print (out)

#执行完毕,终止连接
ssh.close()

def ssh_linux_to_win(linuxpath, winpath):
'''从Linux服务器下载文件到本地

Args:
linuxpath: 文件在服务器上的路径及名字
winpath: 文件下载到本地的路径及名字

'''

client = paramiko.Transport((Host, Port))
client.connect(username=Username, password=Password)
sftp = paramiko.SFTPClient.from_transport(client)

sftp.get(linuxpath, winpath)
client.close()
print ('DownLoad file finished!')

def ssh_win_to_linux(winpath, linuxpath):
'''从windows向linux服务器上传文件

Args:
winpath: 要上传的文件在本地的路径及位置
linuxpath: 文件要上传至服务器的路径及名字
'''

client = paramiko.Transport((Host, Port))
client.connect(username=Username, password=Password)
sftp = paramiko.SFTPClient.from_transport(client)

sftp.put(winpath, linuxpath)
client.close()
print ('UpLoad file finished!')

if __name__=='__main__':
ssh_exec_cmd(Command)
#ssh_exec_cmd()
#ssh_linux_to_win(LinuxPath, WinPath)
#ssh_win_to_linux(WinPath, LinuxPath)


所需工具:
Python3.4
paramiko模块
需要下载三个文件进行安装才能用:
1、安装pyCrypto http://www.voidspace.org.uk/python/modules.shtml#pycrypto 2、安装ecdsa https://pypi.python.org/pypi/ecdsa/0.9 3.安装paramiko https://github.com/paramiko/paramiko#, 安装步骤同ecdsa


这是我整理的python3.4.0安装包及以上所说的三个模块的安装包,可直接下载使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: