2017-05-08 138 views
-1

我写了一个简单的代码,其中我通过os.system将ssh调用到我的实验设备ip之一。现在对我来说问题是我如何提供密码?我可以通过python吗?通过Python传递SSH密码输入

下面是我一直使用的代码:我试图了解os模块的工作,但到目前为止,怎么现在无法提供密码的说法

import os 
os.system("ssh 192.168.1.100") 

- 如何通过Python提供一个密码这个节目?

我的环境是Bash。

+0

[Python中的命令行参数]的可能重复(http://stackoverflow.com/questions/1009860/command-line-arguments-in-python) – Ajean

回答

0

安装sshpass,然后使用os.system启动命令那样:

os.system("sshpass -p \'yourpassword\' ssh -o StrictHostKeyChecking=no [email protected]") 

或者可以使用织物脚本将公钥复制到系统,那么你将无法连接

需要密码
from fabric.api import env, sudo, run 
def copy_pub_key(ip, user, password, pub_key): 

    env.host_string = ip 
    env.user = user 
    env.password = password 

    if user == "root": 
     sudo('echo \'{pub_key}\' >> /root/.ssh/authorized_keys'.format(
      pub_key=pub_key, 
      user=user 
     )) 
    else: 
     sudo('echo \'{pub_key}\' >> /home/{user}/.ssh/authorized_keys'.format(
      pub_key=pub_key, 
      user=user 
     )) 
+0

感谢您的回复。最终目标是实现登录自动化,并且在某种官方环境中,除了系统给我的东西外,我无法添加任何软件包。 –

+0

然后,您应该使用结构脚本将公钥复制到系统中,然后您可以不使用密码进行连接。 –