SSH客户端 (通过密码连接远程linux主机)

导读:

在这篇文章中,主要谈及如何利用paramiko库,使用密码连接远程linux主机。paramiko是用python语言编写的一个模块,遵循SSH2协议,支持以加密和认证的方式进行远程服务器的连接。

环境:

(1)安装paramiko库:pip install paramiko

(2)python 2.7用来编写代码

(3)在kali-linux上详细配置ssh,见linux环境下ssh的配置

配置好之后,开启ssh:/etc/init.d/ssh start

(4)本地win10、远程kali-linux

代码:

1.方案一

(1)直接使用SSHClient对象的exec_command()在服务端执行命令,在ssh.py添加如下代码:

 

#-*- coding:utf-8 -*- 
import paramiko  

def ssh_command(ip,port,username,password,command):
   # 创建SSH对象
   client = paramiko.SSHClient()
   # 允许连接不在know_hosts文件中的主机
   client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   # 连接服务器
   client.connect(ip,port,username,password)
   # 直接使用SSHClient对象的exec_command()在服务端执行命令
   stdin,stdout,stderr = client.exec_command(command)
   receive = stdout.read()
   # 打印输出
   print receive.decode('utf-8')
   # 关闭连接
   client.close()

ssh_command('192.168.1.175',22,'root','远程主机登陆密码','ls')

 

(2)在win10运行,用这个代码来连接kali-linux,把执行结果显示在win10。

先测试是否可以ping通:

 

已经ping通了,现在连接运程主机,命令执行的结果也可以看到了:

2.方案二

(1)利用SSHClient建立连接的对象得到一个Transport对象,以Transport对象的exec_command()在服务端执行命令,在sshcmd.py添加如下代码(出自python黑帽子 黑客与渗透测试):

 

#-*- coding:utf8 -*-
import paramiko

def ssh_command(ip,port,username,password,command):
    # 创建SSH对象
    client = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    client.connect(ip,port,username,password)
    #将SSHClient建立连接的对象得到一个Transport对象,
    #以Transport对象的exec_command()在服务端执行命令
    ssh_session = client.get_transport().open_session()
    if ssh_session.active:
        ssh_session.exec_command(command)
        receive=ssh_session.recv(1024)
        print receive.decode('utf-8')
    # 关闭连接
    client.close()
ssh_command('192.168.1.175',22,'root','远程主机登陆密码','ls')

(2)在win10运行,运行结果如下:

3.检验是否正确

在linux上执行“ls”命令,发现一致。

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

午夜安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值