通过paramiko远程执行windows命令出现:paramiko.ssh_exception.SSHException: Channel closed. 的解决方法

主要问题在于为windows上的ssh的设置,paramiko连接是没有问题的

想法是远程执行windows服务器上的python程序,通过ssh连接,我在windows服务器上通过winsshd软件个windows安装了ssh服务,但是在创建虚拟用户的时候没有给用户对应的操作权限,所以在通过paramiko使用ssh的账号密码连接执行远程windows服务器上的python脚本时会出现下面错误 

我的连接代码如下,使用的是python3

import paramiko


def ssh_connect(ip, user, pwd):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip, username=user, password=pwd)
    return ssh


def execute_command(device_details, command):
    ip = device_details.get("ip")
    username = device_details.get("username")
    password = device_details.get("password")
    ssh_obj = ssh_connect(ip, username, password)
    print(ip, username, password)
    # 执行cmd命令 command
    ssh_stdin, ssh_stdout, ssh_stderr = ssh_obj.exec_command(command)
    print(ssh_stderr.read())
    print(ssh_stdout.read())
    return ssh_stdout.read()


device_details = {
    "ip": '144.***.***.***', "username": 'test', "password": 'test'
}
command = "cmd /c C:/python36/python.exe D:/demo.py"

output = execute_command(device_details, command)
print(output)

 远程windows服务器上的ssh用户设置如下图

如果在 shell access type 那一栏如果选的是默认的 No shell access ,那么你在本地是没有办法执行远程windows上的程序的,会提示标题所说的错误   如下图所示

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值