ubuntu如何远程ssh登录Windows环境并执行测试命令

这篇具有很好参考价值的文章主要介绍了ubuntu如何远程ssh登录Windows环境并执行测试命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在实际的开发中有时会遇到需要在ubuntu上远程登录Windows的电脑去执行一些比较特殊的命令。这个时候就需要使用python的paramiko模块,首先去远程登录,然后再去执行对应的cmd。

1 paramiko模块简介

paramiko是一个用于在Python中实现SSH(Secure Shell)协议的模块,它提供了客户端和服务器的功能,使得你能够在网络上安全地执行命令、传输文件等。

1.1 安装paramiko

你可以使用以下命令使用pip安装paramiko:

pip3 install paramiko

1.2 paramiko基本用法

1.2.1 创建SSHClient实例

import paramiko

ssh = paramiko.SSHClient()

1.2.2 设置主机密钥策略

在连接SSH服务器之前,建议设置主机密钥策略,以便验证远程主机的身份:

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

1.2.3 连接SSH服务器

ssh.connect(hostname='your_host', username='your_username', password='your_password')

1.2.4 执行命令

以cmd为echo "Connection test"来介绍

cmd = 'echo "Connection test"'
stdin, stdout, stderr = ssh.exec_command(cmd)

1.2.5 关闭SSH连接

ssh.close()

1.2.6 异常处理

import paramiko

try:
    # Your paramiko code here
    
    ssh.close()

except paramiko.AuthenticationException:
    print("Authentication failed, please verify your credentials")
except paramiko.SSHException as e:
    print(f"Unable to establish SSH connection: {e}")
except Exception as e:
    print(f"An error occurred: {e}")

2 windows的配置

要通过SSH连接到Windows电脑,你需要使用SSH客户端,并确保Windows电脑上已启用了OpenSSH服务。

2.1 启动OpenSSH服务

  • 打开服务管理器。你可以按Win + R打开运行对话框,然后输入services.msc并按Enter。
  • 在服务管理器中找到"OpenSSH SSH Server"服务,确保其状态为“已启动”,并将启动类型设置为“自动”。
    ubuntu如何远程ssh登录Windows环境并执行测试命令,linux嵌入式开发,ubuntu,windows,ssh登录Windows电脑,paramiko

2.2 配置防火墙

  • 如果Windows防火墙启用,确保允许SSH流量。你可以在“控制面板”中的“系统和安全”下找到“Windows Defender 防火墙”,然后选择“允许应用通过防火墙”。
  • 在列表中找到“OpenSSH服务器”并确保其允许。

3 Ubuntu配置

3.1 安装ssh客户端

sudo apt-get update
sudo apt-get install openssh-client

3.2 测试是否可以远程链接到Windows

ssh username@your-windows-ip

4 paramiko使用完整测试样例

该测试用例首先使用echo "Connection test"的测试命令去测试远程链接是否确实建立。然后再去执行真是的测试命令,进入到Windows D盘的test目录,去获取test目录下的所有文件和目录,然后输出结果。文章来源地址https://www.toymoban.com/news/detail-758123.html

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

user = 'xxx'
remote_host = 'yyy'
passwd = 'zzz'
cmd = f'powershell.exe cd D:\\test; Get-ChildItem;'

try:
    ssh.connect(remote_host, username = user, password = passwd)
    print(user, '@', remote_host, ": connected successfully.")

    print(" =================== 1 ======================")
    # 执行一个简单的命令(例如:echo)来确认连接确实建立
    stdin, stdout, stderr = ssh.exec_command('echo "Connection test"')
    # 获取命令输出(如果有)
    output = stdout.read().decode('utf-8', errors='ignore').strip()
    error = stderr.read().decode('utf-8', errors='ignore').strip()

    print(" =================== 2 ======================")
    # 根据命令执行结果输出信息
    if output:
        print("Connection test succeeded:", output)
    if error:
        print("Connection test had errors:", error)

    print(" =================== 3 ======================")
    # 执行一个简单的命令(例如:echo)来确认连接确实建立
    stdin, stdout, stderr = ssh.exec_command(cmd)
    print(" =================== 3 - 1 ======================")

    # 获取命令输出(如果有)
    output = stdout.read().decode('ISO-8859-1', errors='ignore').strip()
    print(" =================== 3 - 2 ======================")
    error = stderr.read().decode('utf-8', errors='ignore').strip()
    print(" =================== 3 - 3 ======================")

    print(" =================== 4 ======================")
    # 根据命令执行结果输出信息
    if output:
        print("Connection test succeeded:", output)
    if error:
        print("Connection test had errors:", error)

    print(" =================== 5 ======================")
    # 关闭连接
    ssh.close()

except paramiko.AuthenticationException:
    print("Authentication failed, please verify your credentials")
except paramiko.SSHException as sshException:
    print("Unable to establish SSH connection: %s" % sshException)
except paramiko.BadHostKeyException as badHostKeyException:
    print("Unable to verify server's host key: %s" % badHostKeyException)
except Exception as e:
    print(e)

到了这里,关于ubuntu如何远程ssh登录Windows环境并执行测试命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 彻底解决Ubuntu SSH 无法远程登录及SSH root 登录ACCESS Denied 问题

    采用VM虚拟机安装了Ubuntu 16.04 ,采用SSH远程连接发现了两个问题(与Centos不一样)。 第一、是SSH无法连接上刚建立的虚拟服务器。 原因是Ubuntu没有默认安装SSH服务,需要手动安装下。 1、 sudo ps -e |grep ssh        #查看是否安装了SSH服务(如果显示为空则没安装) 2、sudo apt

    2024年02月04日
    浏览(59)
  • ubuntu 开启 ssh 服务 设置root远程登录

    设置root用户密码 安装ssh服务和vim编辑器 非root用户开启ssh服务 /etc/ssh/ssh_config 配置文件对 root 无效用户,单独修改该配置文件可开启非 root 用户 ssh 访问 去掉 配置文件中 Port 22 的注释后保存退出 设置root用户远程登录 /etc/ssh/sshd_config 配置文件可以 设置 root 用户 ssh 访问 将

    2024年02月15日
    浏览(58)
  • ubuntu 22.04 ssh开启root用户远程登录

    1.进入ubuntu系统后,切换成root用户    输入密码,切换成功之后。 修改root的密码 输入新密码 2.用vim工具修改sshd_config 找到#PermitRootLogin prohibit-password 修改为:PermitRootLogin yes 保存文件 3.重启sshd服务 4.查看sshd服务重启是否成功 如果成功,可以用Xshell工具重新设置root用户登录

    2024年02月21日
    浏览(55)
  • UOS Deepin Ubuntu Linux 开启 ssh 远程登录

    打开控制台 安装 openssh-server 修改 /etc/ssh/ssh_config 文件 找到 # Port 22 去掉 # 注释后 保存 重启 ssh 服务 设置 ssh 服务 开机自启动

    2024年02月07日
    浏览(51)
  • ubuntu-22.04.2网络配置和root登录和root远程ssh登录

    配置网络: 1.查看网卡名称 ip addr(ifconfig 无法使用,需要后期安装) 2. 配置静态IP (1)进入网络配置文件: vim /etc/netplan/00-installer-config.yaml (2)按一下 i ,进入插入模式,开始编辑网卡,如图   (3)编辑好内容后,按一下esc 键,输入:wq   回车键(enter),保存 (4)生效网卡

    2024年02月12日
    浏览(60)
  • Jenkins通过SSH远程执行Windows批处理bat程序

    确保Windows上成功安装了OpenSSH,可参考:Windows系统下安装OpenSSH-CSDN博客 自行百度 系统管理系统配置,找到Publish over SSH,点击新增 点击 Test Configuration,提示Success,即成功。 关于Remote Directoy参数: 1.为空或不填,会工作在C:UsersAdministrator目录下,即Username对应的目录下 2.如

    2024年04月10日
    浏览(62)
  • Ubuntu安装ssh开启22端口并设置允许root远程登录

    注意:我的Ubuntu版本22.04.1 1、安装ssh 2.激活root用户 3、设置允许root通过ssh登录 将 PermitRootLogin 改为 yes 4、重启ssh  到这里就好了

    2024年01月24日
    浏览(71)
  • 安装ubuntu22.04系统,配置国内源以及ssh远程登录

    原文连接:Ubuntu操作系统22.04版本安装教程-VMware虚拟机_wx63f86e949a470的技术博客_51CTO博客 1.点击界面左侧的开启此虚拟机,即可进入Ubuntu操作系统安装界面,点击​​Try or Install Ubuntu ​​即可开始安装 2.进入如下安装界面后,左侧选择框往下拉,选择中文简体,方便我们后续

    2024年02月10日
    浏览(54)
  • 第一次ubuntu wsl ssh远程登录各种报错+解决

    最新推荐文章于 2023-04-13 20:23:43 发布 kh3064 于 2020-11-03 15:12:16 发布 1869 收藏 5 文章标签: ubuntu

    2024年02月08日
    浏览(58)
  • Jenkins部署ssh连接远程主机执行脚本找不到环境变量的问题

    最近在Jenkins部署远程执行其他服务器上的编译脚本时遇到报找不到编译器的问题,耗时两天尝试了排序比较靠前的一些方法,但都没能解决问题,所以决定记录下,希望能帮助到大家。 执行命令:ssh root@远程主机 /studio/test.sh 编译报错: /bin/sh: 1: aarch64-linux-gnu-gcc: not found 注

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包