【问题标题】:Python ssh - keep connection open after script terminatesPython ssh - 脚本终止后保持连接打开
【发布时间】:2015-08-15 02:29:13
【问题描述】:

我正在尝试编写一个脚本,它将为我进入一个盒子。我正在使用 Python 并利用 paramiko 库。我可以在盒子上成功 ssh,但是一旦脚本终止,ssh 连接也会终止。我想在脚本完成运行后保持连接打开。

Python:

self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(host, username=self.username, password=self.password)
stdout = execute(self.ssh, 'pwd') # test command for now to verify i'm on box
print stdout
sys.exit()

控制台:

$ ssh.py

[u'/home/myuser\n']

我的用户@xxxx ~

$

我无法在网上找到类似的示例,因此我们将不胜感激。

【问题讨论】:

  • 终止我的脚本
  • 脚本终止后你希望连接做什么?
  • 我希望连接在 shell 中保持打开状态
  • 你的意思是你想要一个交互式连接,你想要能够输入命令并让远程shell解释它们吗?
  • 是的。我基本上想要脚本做的就是运行'ssh myuser@myserver'。连接后,我希望我的脚本退出并在 ssh 连接仍然存在的情况下保持终端打开,这样我就可以在该机器上执行我需要执行的任何手动操作。这有意义吗?

标签: python linux ssh paramiko


【解决方案1】:

试试这个:

import subprocess
subprocess.call(["ssh", "myuser@myserver"])

【讨论】:

  • 是否可以在命令中包含密码,这样我就不必每次都重新输入?谢谢
  • 出于安全原因,无法在 ssh 命令中使用密码,请改用 ssh-keys(更舒适和安全)
猜你喜欢
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2013-03-05
相关资源
最近更新 更多