用python建立ssh连接后在运行窗口实现类似终端界面的操作
类似于finalshell一样建立连接后实现对终端的操作。
用代码实现不是直接pycharm连接

用python建立ssh连接后在运行窗口实现类似终端界面的操作
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 语言-逆行者 2023-04-09 10:51关注
基于new Bing的回答:
可以使用paramiko模块来实现在Python中建立SSH连接并通过命令行进行操作。以下是一个简单的示例代码:import paramiko # 建立SSH连接 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname='your_hostname', username='your_username', password='your_password') # 执行命令 stdin, stdout, stderr = ssh.exec_command('ls -l') output = stdout.read().decode('utf-8') print(output) # 关闭SSH连接 ssh.close()
在上面的代码中,我们首先使用paramiko模块建立SSH连接。然后,我们使用exec_command()方法执行一个命令,并通过stdout读取输出。最后,我们关闭SSH连接。
如果你想要在Python中实现一个类似终端界面的操作,可以使用Python的标准库cmd模块。以下是一个简单的示例代码:
import cmd import paramiko class SSHShell(cmd.Cmd): intro = 'Welcome to the SSH shell. Type help or ? to list commands.\n' prompt = '(ssh) ' def __init__(self, hostname, username, password): super().__init__() self.ssh = paramiko.SSHClient() self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.ssh.connect(hostname=hostname, username=username, password=password) def do_exec(self, arg): """Execute a command on the remote host.""" stdin, stdout, stderr = self.ssh.exec_command(arg) output = stdout.read().decode('utf-8') print(output) def do_exit(self, arg): """Exit the shell.""" self.ssh.close() return True if __name__ == '__main__': shell = SSHShell('your_hostname', 'your_username', 'your_password') shell.cmdloop()
在上面的代码中,我们定义了一个名为SSHShell的类,它继承自cmd.Cmd类。我们在SSHShell类的构造函数中建立SSH连接。然后,我们定义了两个命令:exec和exit。exec命令用于执行远程命令,而exit命令用于退出终端界面。最后,我们在main函数中创建了一个SSHShell对象并调用了cmdloop()方法,这将启动一个类似终端的命令行界面。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用