SSHClient paramiko Python?

Saya menggunakan metode ini untuk mengirim file ke server jauh:

def runSendArchive(host, port, username, password, remote_directory, archive):
    try:
        s = paramiko.SSHClient()
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        s.connect(host, username, password, port)

        sftp = s.open_sftp()
        sftp.put(archive, remote_directory)
        print "3 - The file was uploaded via SSH!"

    except (BadHostKeyException, AuthenticationException, SSHException, socket.error) as e:
        print "4 - Error! The file was not uploaded: ", e

Ini mengembalikan saya pengecualian:

except (BadHostKeyException, AuthenticationException, SSHException, socket.error) as e: NameError: global name

'BadHostKeyException' tidak ditentukan

Bagaimana cara menggunakan perpustakaan ini kan?

Sekarang saya mendapatkan kesalahan berikut:

File "run.py", line 65, in runSendArchive
    sftp.put(archive, remote_directory)
  File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 721, in put
    return self.putfo(fl, remotepath, file_size, callback, confirm)
  File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 677, in putfo
    with self.file(remotepath, 'wb') as fr:
  File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 338, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 774, in _request
    return self._read_response(num)
  File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 826, in _read_response
    self._convert_status(msg)
  File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 859, in _convert_status
    raise IOError(text)
IOError: Failure

65 baris adalah sftp.put(archive, remote_directory)


person OPV    schedule 13.11.2017    source sumber


Jawaban (1)


Dilihat dari garisnya

paramiko.SSHClient()

kamu menelepon import paramiko

Karena BadHostKeyException ada di paramiko.ssh_exception, Anda perlu menambahkan

from paramiko.ssh_exception import BadHostKeyException, AuthenticationException, SSHException

Lihat http://docs.paramiko.org/en/2.3/api/ssh_Exception.html

  • paramiko.ssh_Exception.BadHostKeyException
  • paramiko.ssh_Exception.AuthenticationException
  • paramiko.ssh_Exception.SSHException

berada di modul itu.

Untuk contoh cuplikan kode, Anda perlu menambahkan yang berikut ini sebelum fungsi runSendArchive

import socket
import paramiko
from paramiko.ssh_exception import BadHostKeyException, AuthenticationException, SSHException
person Daniel F    schedule 13.11.2017
comment
Saya mencoba mengimpor: import paramiko.ssh_exception.AuthenticationException - person OPV; 14.11.2017
comment
Ini memberi saya: ` import paramiko.ssh_Exception.AuthenticationException ImportError: Tidak ada modul bernama AuthenticationException` - person OPV; 14.11.2017
comment
Silakan lihat pertanyaan lagi - person OPV; 14.11.2017
comment
stackoverflow.com/questions/3091326/put-in-sftp -using-paramiko --› remote_directory harus remote_path (termasuk nama file baru di server, yaitu /home/user/upload.txt) - person Daniel F; 14.11.2017