当前位置: 首页 > 面试题库 >

使用Python在SSH上执行命令

陈扬
2023-03-14
问题内容

我正在编写一个脚本来自动化Python中的某些命令行命令。目前,我正在打电话:

cmd = "some unix command"
retcode = subprocess.call(cmd,shell=True)

但是我需要在远程计算机上运行一些命令。手动地,我将使用ssh登录,然后运行命令。我将如何在Python中自动执行此操作?我需要使用(已知)密码登录到远程计算机,所以我不能只使用cmd = ssh user@remotehost,我想知道是否应该使用一个模块?


问题答案:
ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)


 类似资料:
  • 问题内容: 我使用的朋友服务器仅允许一个用户从SSH登录,因此通常我只是以该用户身份登录,然后执行更改帐户的操作。我想使用Python自动执行一些无聊的工作,但是我遇到了问题。显然,我首先尝试过的Paramiko模块为每个命令调用了一个shell,所以这是不可能的。后来我尝试使用克服它,但是仍然失败了(我想是因为更改用户也会更改shell)。 之后,我发现了有关Fabric模块的信息,但最好的办法

  • 我试图在unix中使用JSCHSSH类(com.jcraft.jsch)执行一些工具。我的工具有一个选择菜单。我需要转到工具所在的文件夹,执行它并选择请求的选项。在每个命令之后,(cd,execute,…)我希望检查输出并检查状态代码(0/1)。我有下面的代码按预期执行它,但在这段代码中,我找不到一种方法来检查每个命令后的输出。 我无法找到一种方法,但我怎么能分开的命令,并打印他们一个接一个(在同

  • 问题内容: Scenerio:我想通过ssh从Java程序在远程机器上运行命令(我在开发机器上使用OpenSSH)。我也想通过传递密码来建立ssh连接,而不是像使用“期望”那样设置密钥。 问题:尝试执行“期望”之类的密码登录时,使用ProcessBuilder创建的流程似乎看不到密码提示。当运行常规的非ssh命令(例如’ls’)时,我可以获取流并与它们进行交互。我将标准错误和标准输出合并为一个流因

  • 我有一个CircleCI配置,它的末尾有一个部署脚本。该命令应该SSH到服务器中,移动到目录并执行NPM脚本。看起来是这样的: 这将引发以下错误: 这表示服务器上没有安装NPM,但它安装了。为了测试这一点,如果我单独运行这些命令,它们就可以工作。 那么这里有什么问题?

  • 我正在寻找一个解决方案,采取SSH连接,然后是Telnet连接到远程系统通过Java。由于只有使用telnet连接,我才能在远程计算机上执行该特定命令。 在大量浏览之后,我找到了这个答案“https://stackoverflow.com/questions/27146991/running-telnet-command-on-remote-ssh-session-using-jsch”,但是在执

  • 问题内容: 我试图通过这样的本地服务器上的ssh命令在远程linux服务器上执行命令: ssh myremoteserver’类型ttisql’ 其中ttisql是我的远程计算机路径上的可执行文件。 运行此命令的结果是: bash:第0行:类型:ttisql:未找到 当我只是先连接并执行以下操作: ssh myremoteserver 然后输入命令: [myuser @ myremoteserve