用python建立ssh连接后在运行窗口实现类似终端界面的操作

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

基于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()方法,这将启动一个类似终端的命令行界面。

以下回答引用自chatGpt, 有用的话,请采纳哇!!!
要在Python中实现SSH连接,并在运行窗口中模拟终端操作,可以使用paramiko库。下面是一个基本示例,展示如何在Python中建立SSH连接并执行命令。

pythonCopy codeimport paramiko

# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')

# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')

# 获取输出结果
print(stdout.read().decode('utf-8'))

# 关闭SSH连接
ssh.close()

该示例建立了一个到远程主机的SSH连接,使用exec_command方法执行了一个ls -l命令,并获取了命令输出。你可以根据需要修改命令并处理输出结果。

  • 这篇博客: pycharm通过ssh连接远程服务器中的 三、Pycharm 远程连接远程服务器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、选择 File -> Settings,选择 Project -> Project Interpreter,然后在右边,点击那个小齿轮进行设置;

    2、点击 Add Remote,选择 SSH Credentials,填写主机的 SSH 配置信息,Python interpreter path 选择自己需要的远程服务器的解释器(选择需要的python版本),如下;
    在这里插入图片描述
    3、选择配置好的远程服务器,Path mappings与第二部分第4个步骤中的路径映射关系对应即可(由于刚开始这一步没配置好,运行时一直找不到文件,其实就是要把本地文件Upload到服务器的对应地址,才能在服务器运行),可以看到已经读取到远程服务器的Package,如下:
    在这里插入图片描述
    4、运行程序前,进入Tools -> Deployment,选择Automatic Upload(always),这样本地编辑程序后,会自动上传到服务器,以免本地文件与服务器文件不一致,导致运行出错;

    5、运行程序时,也就是点击 Run 的时候选择刚刚配置的解释器就能远程调试了,基本跟使用本地解释器没有什么区别。