如遇安装python模块问题,请参考此连接处理:http://t.csdnimg.cn/l9W6f

一、命令行中使用ssh连接

1、安装 OpenSSH 客户端:

  1. 在 Windows 10 中,打开“设置”应用,选择“应用” > “可选功能” > “添加功能”。
  2. 找到并安装“OpenSSH 客户端”。
  3. 启动sshd
 net start sshd

2、确保目标计算机上已配置 OpenSSH 服务器:

  1. 在要连接的 Windows 计算机上,按照相应的指南安装并配置 OpenSSH 服务器。
  2. 启动
  • sshd net start sshd

注:状态查看

Add-WindowsCapability -Online -Name OpenSSH.Server*
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Server*'

3、连接另一台 Windows 计算机:

打开命令提示符(cmd)或 PowerShell。
使用以下命令连接到目标计算机:

ssh username@remote_computer_ip

其中,username 是目标计算机上的用户名,remote_computer_ip 是目标计算机的 IP 地址。

4、输入密码

输入目标计算机上对应用户的密码,以建立 SSH 连接。

二、python模块paramiko

参考连接:https://www.cnblogs.com/10086upup/p/17621364.html
paramiko是一个基于SSHv2协议的纯Python(2.7,3.4+)库;

  • 提供了客户端和服务器的功能;
  • 可以实现SSH2远程安全连接,支持认证和密钥方式;
  • 一般用于执行远程命令、传输文件、中间SSH代理等。
  • paramiko可以在Python代码中直接使用SSH协议对远程服务器进行操作,而不是调用ssh命令对远程服务器进行操作。

前置条件:
        两台windows电脑的ssh已启动。环境配置如第一种方法所述。

1、安装

pip install paramiko

2、代码示例


import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# time.sleep(10)
# 连接远程电脑
ssh.connect(hostname='ip', port=22, username='comptername', password='compterpwd', timeout= 60)
# time.sleep(10)
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ipconfig')

# 打印输出结果
print(stdout.read())

# 关闭连接
ssh.close()

三、winrm

        WinRM服务基于HTTP(HTTPS)协议,使用5985端口(HTTPS使用5986端口)。按照微软官方的介绍:Windows2008 R2以上版本的操作系统,默认开启WinRM服务,因此,在使用时只需将防火墙相应的5985(或5986)端口开放即可;

1、安装pywinrm

pip install pywinrm

2、配置服务器winrm服务

以管理员方式cmd

右键点击这里,

winrm service 基础配置:

winrm quickconfig

查看winrm service listener:

winrm e winrm/config/listener

为winrm service 配置auth:

winrm set winrm/config/service/auth @{Basic="true"}

为winrm service 配置加密方式为允许非加密:

winrm set winrm/config/service @{AllowUnencrypted="true"}

若此处报错,这是因为网络连接属性“公用”导致。将其改为“专用”即可。

设置后,操作不报错,有相关信息即可。

3、代码示例

import winrm   # pip install pywinrm


session = winrm.Session('http://computerip/wsman',auth=('computername','computerpwd'))
command = r'ipconfig'
result = session.run_cmd(command)  #cmd执行
#result = session.run_ps(command)  #powershell执行
print(result)
print(result.status_code)
code = result.status_code


# 根据返回码,获取响应内容(bytes)
content = result.std_out if code == 0 else result.std_err
try:
    result = content.decode("utf8")
except:
    result = content.decode("GBK")
print(result)

更多参考如下:

python选用pywinrm模块连接远程的windows服务器:http://t.csdnimg.cn/gN0YZ

http://t.csdnimg.cn/Rb2mb

http://t.csdnimg.cn/vCxp9 带有详细设置

http://t.csdnimg.cn/nu0vy

http://t.csdnimg.cn/GAWvp 使用Protocol方法、使用session方法

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐