2017-05-08 12 views
-1

シンプルなコードを書いたので、私の研究室のデバイスipの1つにos.systemを使ってsshを呼び出しました。今私の問題は、私はどのようにパスワードを提供するのですか?私はPythonを介してそれを行うことはできますか?以下はPython経由のSSHパスワード入力の受け渡し

私が使用しているコードです:

import os 
os.system("ssh 192.168.1.100") 

私はどのようにosモジュールの動作を理解しようとしましたが、これまでのパスワード引数を供給することはできませんよ - 私はのpython経由でパスワードを入力しない方法このプログラム?

私の環境はBashです。

+0

[コマンドライン引数のPython]の可能な複製(http://stackoverflow.com/questions/1009860/command-line-arguments-in-python) – Ajean

答えて

0

そのようos.systemを使用してコマンドを起動し、sshpassをインストールします。

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

次に、ファブリックスクリプトを使用して公開鍵をシステムにコピーし、パスワードなしで接続する必要があります。 –

関連する問題