Python 2.7.x, Hur kan jag använda With, pysftp och set_missing_host_key_policy(paramiko.AutoAddPolicy()) ihop?

Permalänk
Medlem

Python 2.7.x, Hur kan jag använda With, pysftp och set_missing_host_key_policy(paramiko.AutoAddPolicy()) ihop?

Hej,

Jag försökte använda pysftp och så hittade jag en sida som visade att man kunde använda "with" med den precis som man kan med lite andra saker i python. Jag gjorde följande lilla kodsnutt:

import pysftp ftp_server="foobar" ftp_user="snafu" ftp_user="secret" ftp_dir="." ftp_filename="cool.txt" with pysftp.Connection(ftp_server, ftp_user, ftp_password) as sftp: with sftp.cd(ftp_dir): sftp.get(ftp_filename)

När jag körde den fick jag detta fel:

paramiko.ssh_exception.SSHException: No hostkey for host foobar found.

På grund av att jag inte har en ssh-nyckel för den servern.
Jag vill inte behöva ladda ner nyckeln manuellt, så jag sökte mer och hittade detta:

ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

Det såg ju ut precis som det jag ville ha, så jag provade att använda det med min pysftp anslutning men jag kan inte få det att gunka, det jag hittade använde endast paramiko eller körde inte med "with" utan på det traditionella sättet.

Är det någon som vet hur man ska göra med detta?

Visa signatur

/M

Permalänk
Medlem

När jag kollar dokumentationen för pysftp så verkar Connection vilja ha parametrarna i följande ordning:

  • host

  • username

  • private_key

  • password

  • ...

Så den vill tolka ftp_password som en privat nyckel istället för ett lösenord. Testa följande istället:

with pysftp.Connection(ftp_server, username=ftp_user, password=ftp_password) as sftp: # ...

Permalänk
Medlem
Skrivet av iMaXi:

När jag kollar dokumentationen för pysftp så verkar Connection vilja ha parametrarna i följande ordning:

  • host

  • username

  • private_key

  • password

  • ...

Så den vill tolka ftp_password som en privat nyckel istället för ett lösenord. Testa följande istället:

with pysftp.Connection(ftp_server, username=ftp_user, password=ftp_password) as sftp: # ...

Nämen! Det var ju lite lurigt, blev förvillad av felmeddelandet där lite.
Det funkade jättebra, tack för hjälpen!

Visa signatur

/M

Permalänk
Medlem

Hej! (Nybörjare på python här) Det skulle vara till stor hjälp om det finns någon här som vet hur jag ska gå tillväga.

Jag fick som kommentar från lärare att koden ska vara uppdelad i mer än en funktion. Så här ser koden ut just nu:

def main():

try:

fahrenheit = float(input('Hur många fahrenheit är det? '))

celsius = (fahrenheit - 32)*5/9

celsius = round(celsius,2)

print ('Hej igen, temperaturen i Celsius är ', celsius ,'grader')

except ValueError:
print ("\nfyll i ett korrekt värde!")
return main()

main()

Permalänk
Medlem
Skrivet av lillasan:

Hej! (Nybörjare på python här) Det skulle vara till stor hjälp om det finns någon här som vet hur jag ska gå tillväga.

Jag fick som kommentar från lärare att koden ska vara uppdelad i mer än en funktion. Så här ser koden ut just nu:

def main():

try:

fahrenheit = float(input('Hur många fahrenheit är det? '))

celsius = (fahrenheit - 32)*5/9

celsius = round(celsius,2)

print ('Hej igen, temperaturen i Celsius är ', celsius ,'grader')

except ValueError:
print ("\nfyll i ett korrekt värde!")
return main()

main()

Hej,

Först och främst ska du då skapa en ny forumtråd, inte lägga in en helt annan sak i en annan tråd, det blir ingen ordning då.

Visa signatur

/M

Permalänk
Medlem

@Marowak: Sorry är ny här