重庆忠县网站建设公司推荐,国内知名的网站建设企业,找工作上什么网,seo推广教程视频ubuntu如何远程ssh登录Windows环境并执行测试命令 1 paramiko模块简介1.1 安装paramiko1.2 paramiko基本用法1.2.1 创建SSHClient实例1.2.2 设置主机密钥策略1.2.3 连接SSH服务器1.2.4 执行命令1.2.5 关闭SSH连接1.2.6 异常处理 2 windows的配置2.1 启动OpenSSH服务2.2 配置防火… ubuntu如何远程ssh登录Windows环境并执行测试命令 1 paramiko模块简介1.1 安装paramiko1.2 paramiko基本用法1.2.1 创建SSHClient实例1.2.2 设置主机密钥策略1.2.3 连接SSH服务器1.2.4 执行命令1.2.5 关闭SSH连接1.2.6 异常处理 2 windows的配置2.1 启动OpenSSH服务2.2 配置防火墙 3 Ubuntu配置3.1 安装ssh客户端3.2 测试是否可以远程链接到Windows 4 paramiko使用完整测试样例 在实际的开发中有时会遇到需要在ubuntu上远程登录Windows的电脑去执行一些比较特殊的命令。这个时候就需要使用python的paramiko模块首先去远程登录然后再去执行对应的cmd。
1 paramiko模块简介
paramiko是一个用于在Python中实现SSHSecure Shell协议的模块它提供了客户端和服务器的功能使得你能够在网络上安全地执行命令、传输文件等。
1.1 安装paramiko
你可以使用以下命令使用pip安装paramiko
pip3 install paramiko1.2 paramiko基本用法
1.2.1 创建SSHClient实例
import paramikossh paramiko.SSHClient()1.2.2 设置主机密钥策略
在连接SSH服务器之前建议设置主机密钥策略以便验证远程主机的身份
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())1.2.3 连接SSH服务器
ssh.connect(hostnameyour_host, usernameyour_username, passwordyour_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 paramikotry:# Your paramiko code heressh.close()except paramiko.AuthenticationException:print(Authentication failed, please verify your credentials)
except paramiko.SSHException as e:print(fUnable to establish SSH connection: {e})
except Exception as e:print(fAn error occurred: {e})2 windows的配置
要通过SSH连接到Windows电脑你需要使用SSH客户端并确保Windows电脑上已启用了OpenSSH服务。
2.1 启动OpenSSH服务
打开服务管理器。你可以按Win R打开运行对话框然后输入services.msc并按Enter。在服务管理器中找到OpenSSH SSH Server服务确保其状态为“已启动”并将启动类型设置为“自动”。
2.2 配置防火墙
如果Windows防火墙启用确保允许SSH流量。你可以在“控制面板”中的“系统和安全”下找到“Windows Defender 防火墙”然后选择“允许应用通过防火墙”。在列表中找到“OpenSSH服务器”并确保其允许。
3 Ubuntu配置
3.1 安装ssh客户端
sudo apt-get update
sudo apt-get install openssh-client3.2 测试是否可以远程链接到Windows
ssh usernameyour-windows-ip4 paramiko使用完整测试样例
该测试用例首先使用echo Connection test的测试命令去测试远程链接是否确实建立。然后再去执行真是的测试命令进入到Windows D盘的test目录去获取test目录下的所有文件和目录然后输出结果。
import paramikossh paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())user xxx
remote_host yyy
passwd zzz
cmd fpowershell.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, errorsignore).strip()error stderr.read().decode(utf-8, errorsignore).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, errorsignore).strip()print( 3 - 2 )error stderr.read().decode(utf-8, errorsignore).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 servers host key: %s % badHostKeyException)
except Exception as e:print(e)