赞
踩
在系统管理与自动化运维中,SSH(Secure Shell)是一个常用的协议,用于安全地访问远程计算机。Python提供了一个名为paramiko的库,它使得通过SSH进行远程操作变得简单。本文将展示如何使用paramiko库实现远程Linux主机的命令执行和文件上传。
实现python编写代码远程登录linux主机,执行一条命令ls
实现python编写代码远程给linux主机上传一个文件
import paramiko def ssh_connect_and_execute_command(host, username, password, command): """ 连接到SSH服务器并执行命令。 参数: - host: 远程主机的IP地址 - username: SSH登录用户名 - password: SSH登录密码 - command: 要执行的命令 返回: - 命令的输出结果 """ # 创建 SSH 客户端并连接 client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=host, username=username, password=password) # 执行命令 stdin, stdout, stderr = client.exec_command(command) # 获取命令输出和错误信息 output = stdout.read().decode() error = stderr.read().decode() # 打印输出和错误信息 print(output) if error: print(f"Error: {error}") # 关闭连接 client.close() return output def ssh_connect_and_upload_file(host, username, password, local_path, remote_path): """ 连接到SSH服务器并上传文件。 参数: - local_path: 本地文件的路径 - remote_path: 远程文件的目标路径 """ # 创建 SSH 客户端并连接 client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=host, username=username, password=password) # 上传文件 sftp = client.open_sftp() sftp.put(local_path, remote_path) # 关闭SFTP会话 sftp.close() # 关闭SSH连接 client.close() # 使用示例 if __name__ == "__main__": # Linux 主机信息 host = "192.168.204.133" username = "luruijie" password = "********" # 执行命令 command = "ls" print("Executing command:", command) output = ssh_connect_and_execute_command(host, username, password, command) print("Command output:", output) # 上传文件 local_path = "test_remote.txt" remote_path = "/home/luruijie/文档/test_remote.txt" print("Uploading file from", local_path, "to", remote_path) ssh_connect_and_upload_file(host, username, password, local_path, remote_path)
Linux终端中验证
安全注意事项
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。