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

Trädvy Permalänk
Medlem
Plats
Götet, typ
Registrerad
Okt 2004

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?

/M

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Nov 2005

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: # ...

Trädvy Permalänk
Medlem
Plats
Götet, typ
Registrerad
Okt 2004
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!

/M

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

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()

Trädvy Permalänk
Medlem
Plats
Götet, typ
Registrerad
Okt 2004
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å.

/M

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

@Marowak: Sorry är ny här