1

Windows ファイル システムのローカル パス名を get メソッド (Paramiko) で設定すると、「許可が拒否されました」というエラーが表示されます。誰かがこれに遭遇したか、それを解決する方法を知っていますか? 管理者としてログインしています。以下は、コードとトレースバック エラーです。ありがとう!

コード:

 import paramiko
 import sys
 import os





 ssh = paramiko.SSHClient()
 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 ssh.connect('10.5.48.72', username='root', password='******')


 apath = '/var/log'
 apattern = '"*.log"'
 rawcommand = 'find {path} -name {pattern}'
 command = rawcommand.format(path=apath, pattern=apattern)
 stdin, stdout, stderr = ssh.exec_command(command)
 filelist = stdout.read().splitlines()

これは正しいコードです。ルートにある Ubuntu サーバーですべてのログ ファイルとテキスト ファイルを検索し、ファイルを取得してローカル ディレクトリ (c:\Extracted) に保存します。

sim_ip = raw_input('Host: ')
pattern = r"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"

if re.match(pattern, sim_ip):

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(sim_ip, username='root', password='*****')
apath = '/'
apattern = '"*.txt" -o -name "*.log"' 
rawcommand = 'find {path} -name "*.txt" -o -name "*.log"' #{pattern}
command = rawcommand.format(path=apath, pattern=apattern)
stdin, stdout, stderr = ssh.exec_command(command)
filelist = stdout.read().splitlines()
ftp = ssh.open_sftp() 
for afile in filelist:
    (head, filename) = os.path.split(afile)
    print(filename)
    ftp.get(afile, 'c:\\Extracted\\' + filename)  #'./'+filename)

ftp.close()
ssh.close()

else:
    print "You entered an invalid IP Address!!!" 
4

0 に答える 0