Python实现建立SSH连接的方法

本文实例讲述了Python实现建立SSH连接的方法。分享给大家供大家参考。具体实现方法如下:

我需要实现一个Windows下远程连接到SSH服务器执行命令的功能,所以就在网上找资料。我的环境是:Windows7 64位,Python 2.7 32位。按照网上的说法,需要下载pycrypto和paramiko两个模块进行安装。最后下载的版本是pycrypto2.3和paramiko1.7.6。
安装过程也比较简单,先安装pycrypto后安装paramiko,解压后在命令提示符下切换到解压后的目录,输入python setup.py install就可以了。另外安装pycrypto前需要先安装mingw,不然会因为缺少编译器而提示缺少一个BAT文件。安装好mingw后,需要在Python安装目录下的Lib\distutils\文件夹里建立一个distutils.cfg文件,文件内容为:
[build]
compiler=mingw32

mingw的下载地址:http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/
pycrypto及paramiko的下载与安装请参考:《windows下安装python paramiko模块的代码》

安装好以后就可以编写写代码了。由于我的SSH服务器只需要用户名和密码就可以连接,应该说属于最简单的一种了。

下面是一个例子,相信一看就懂了:
stdout.readlines()返回一个列表,一般来说,Linux命令的每行输出存储为一个元素,且已经带了换行符。

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('192.168.8.248', 22, username='root', password='password', timeout=4)
stdin, stdout, stderr = client.exec_command('ls -l')
for std in stdout.readlines():
  print std,
client.close()

输出的结果为:

>>>
总计 184804
-rw------- 1 root root    973 05-19 20:27 anaconda-ks.cfg
-rw-r--r-- 1 root root   13895 05-19 20:27 install.log
-rw-r--r-- 1 root root   3058 05-19 20:25 install.log.syslog
-rw-r--r-- 1 root root 189008625 05-28 09:55 tmp
>>>

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • ubuntu 安装openssh服务器的教程详解

    1.安装openssh 首先得安装 openssl 和zlib 安装openssl ---下载openssl-1.0.1j.tar.gz,解压到/usr/openssl/目录下进入解压目录 执行./config -fPIC 如下图 安装zlib---下载zlib-1.2.8.tar.gz解压到/usr/zlib/目录下 执行./configure make 和 make install命令 ok 2.下载openssh.tar.gz包解压放在/usr/openssh/目录下 解压 如图 执行 .

  • 详解Ubuntu14.04桥接网络设置与SSH登陆

    操作系统:Unbuntu14.04 虚拟机:VMware10 一.网络设置 1.设置vmware Bridge Protocol 本地链接->属性->vmware Bridge Protocol打钩 2.然后主机设定静态ip(如果已设置好了的不用管) 3.vmware 设置 编辑->虚拟网络编辑器 4.Ununtu设置 确认关闭,接下来设定ubuntu的IP和DNS ,终端:(Alt+Ctrl+T打开 ) sudo vi /etc/network/interfaces 然后输入以下内容:

  • Ubuntu下查看ssh服务是否安装或启动的方法

    查看ssh是否启动,有sshd说明已经启动 sudo ps -e |grep ssh 启动ssh服务 sudo service ssh start 下图是没有安装ssh服务时,运行的效果 安装ssh服务 sudo apt-get install openssh-server 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流.

  • ssh连接超时解决方法

    1.修改server端的etc/ssh/sshd_config 复制代码 代码如下: ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应 2.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下) 复制代码 代码如下:

  • ssh自动登录的4种实现方法

    1. 自动ssh/scp方法 A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运行命令:# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)# ssh root@192.168.60.110 "mkdir .ssh" (需要输入密码)# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/

  • ubuntu16.04下安装openssh-server报依赖错误的完美解决方法(非常不错)

    问题:系统重装后,安装和配置SSH,防火墙配置 #安装install openssh-server sudo apt install openssh-server -y 遇到问题: sudo apt install openssh-server -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件 包尚未被创建或

  • Ubuntu下如何设置ssh免密码登录安装

    1.首先在本机安装openssh-server和openssh-client. 命令:sudo apt-get install openssh-server openssh-client 2.在检查当前的目录下有没有.ssh这个文件,没有的话就mkdir下. 3.生成公钥与私钥.命令:ssh-keygen -t rsa 4.将.ssh文件中的id_isa_pub复制到其他机器的authorized_keys下.并修改authorized_keys权限为600. 5.ssh nodeXX即可

  • 详解Ubuntu下ssh服务的安装与登陆(ssh远程登陆)

    Ubuntu默认并没有安装ssh服务,如果通过ssh远程连接到Ubuntu,需要自己手动安装ssh-server. 判断是否安装ssh服务,可以通过如下命令进行: ps -e|grep ssh 输出如下: zht@zht-Ubuntu:~$ ps -e|grep ssh 2151 ? 00:00:00 ssh-agent 5313 ? 00:00:00 sshd ssh-agent表示ssh-client启动,sshd表示ssh-server启动了. 如果缺少sshd,说明ssh服务没有启动或者

  • ssh远程执行命令方法和Shell脚本实例

    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!! ssh执行远程操作 命令格式 复制代码 代码如下: ssh -p $port $user@$p 'cmd'    $port : ssh连接端口号  $user: ssh连接用户名  $ip:ssh连接的ip地址  cmd:远程服务器需要执行的操作 准备工作 基于公私钥认证或者用户

  • ubuntu16.04服务器配置ssh免密码登录

    在客户端操作 ssh-keygen -t rsa 文件位置写/home/try/.ssh/server_rsa,不使用默认值,我命名为server_rsa担心影响到git的key(因为我的git使用的是默认值) ssh-copy-id root@123.45.56.78(你的服务器ip), 或这使用 cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/autho

随机推荐