用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
命令,并获取了命令输出。你可以根据需要修改命令并处理输出结果。
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 的时候选择刚刚配置的解释器就能远程调试了,基本跟使用本地解释器没有什么区别。