Python try and except 在启动无密码 ssh 连接时

标签 python linux ssh

我想知道这种使用 ssh 的情况是否适用于 try 和 except。如果 try 部分要求输入 ssh 密码,那么它应该移至 except 部分。这是我的代码,

 import os,sys,subprocess

         def ProcesS (input):
            print input
            A = subprocess.Popen (input,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
            output,error = A.communicate()
            return output,error

 try:
         ProcesS('ssh system1@123.123.123.123 \'ls\'')
 except:
         ProcesS('ssh system2@10.101.10.1 \'ssh system1@123.123.123.123 \'ls\' \'')

在我的例子中,这甚至在 ssh 超时时都不起作用。

最佳答案

正如您所写的那样,它不会,因为 ssh 会坐在那里等待密码并且不会失败。

然而,由于您没有向命令发送任何输入,您可以将 -n 选项传递给 ssh,如果它想询问任何内容,它将失败。所以使用 -n 它应该可以工作。

关于Python try and except 在启动无密码 ssh 连接时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990314/

相关文章:

Python:用引号将空格分隔字符串的每个单词括起来

python - 如何使用 Django 获取最新日期?

python - 如何在 Django/Python 中减去两个日期?

linux - 无法安装 Play 2.0 支持 - INTELIJ 12

没有安装mysql的mysqlimport?

login - GCE 权限被拒绝(公钥)

python - 使用 SUDS Python WSDL 客户端和 Django Sentry,带有 __sentry__ 属性的异常

c - 使用read()的程序进入死循环

ruby-on-rails - ruby 网 :SSH Control Master?

java - 使用 JSch sudo 示例和 Channel.setPty 在远程主机上运行 sudo 命令