Paramiko模組安裝與使用

svoid發表於2016-04-03

Paramiko介紹

Paramiko遵循SSH2協議的python類庫,支援以加密和認證的方式,可以進行遠端伺服器的連線。其中ansible也是通過Paramiko來進行ssh連線的。用它做遠端管理時僅需要在本地上安裝相應的軟體(python以及PyCrypto),對遠端伺服器沒有配置要求,對於連線多臺伺服器,進行復雜的連線操作特別有方便。

安裝

Paramiko安裝依賴於pycrypto、ecdsa模組

  1. shell> wget https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.13.tar.gz
  2. shell> tar zxvf ecdsa-0.13.tar.gz
  3. shell> cd ecdsa-0.13
  4. shell> python setup.py install
  5. shell> wget https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
  6. shell> tar zxvf pycrypto-2.6.1.tar.gz
  7. shell> cd pycrypto-2.6.1
  8. shell> python setup.py install
  9. shell> wget https://pypi.python.org/packages/source/p/paramiko/paramiko-1.16.0.tar.gz
  10. shell> unzip paramiko-1.16.zip
  11. shell> cd paramiko-1.16
  12. shell> python setup.py install

Paramiko使用示例

執行遠端命令

  1. #!/usr/bin/python
  2. import paramiko
  3. ssh = paramiko.SSHClient()
  4. # 允許連線不在known_hosts檔案列表中的主機
  5. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  6. ssh.connect("遠端IP,埠,"使用者", "密碼")
  7. stdin, stdout, stderr = ssh.exec_command("ls -l /tmp")
  8. print(stdout.readlines())
  9. ssh.close()

上傳檔案到遠端伺服器

  1. #!/usr/bin/python
  2. import paramiko
  3. tp = paramiko.Transport("遠端IP",埠)
  4. tp.connect( username = "使用者", password = "密碼")
  5. sftp = paramiko.SFTPClient.from_transport(tp)
  6. remotepath = '/tmp/Python-2.7.9.tgz'
  7. localpath = '/tmp/Python-2.7.9.tgz'
  8. sftp.put(localpath, remotepath)
  9. tp.close()

從遠端伺服器下載檔案

  1. #!/usr/bin/python
  2. import paramiko
  3. tp = paramiko.Transport("遠端IP",埠)
  4. tp.connect( username = "使用者", password = "密碼")
  5. sftp = paramiko.SFTPClient.from_transport(tp)
  6. remotepath = '/tmp/Python-2.7.9.tgz'
  7. localpath = '/tmp/Python-2.7.9.tgz'
  8. sftp.get(remotepath, localpath)
  9. tp.close()




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29733787/viewspace-2074776/,如需轉載,請註明出處,否則將追究法律責任。

相關文章