알려진 호스트 파일을 만드는 방법은 무엇입니까? [복제]
파이썬을 사용하여 SFTP 사이트에 연결하려고하는데 known_hosts 파일이 Windows 10 컴퓨터에 없습니다. 온라인에서 서버에 처음 연결할 때 호스트 키가 나타남을 발견했습니다.https://winscp.net/eng/docs/ssh_verifying_the_host_key
이것을 파이썬 코드에서 사용할 수있는 known_hosts 파일로 어떻게 변환합니까?
hostname ssh-rsa 2EP...8MZ
위의 예에서 다음 과 같은 파일을 만들려고했지만 잘못된 호스트 키 오류가 발생합니다.Error('Incorrect padding'))
감사합니다.
import pysftp
cnopts = pysftp.CnOpts(knownhosts='C:\\Users\\Documents\\known_hosts')
with pysftp.Connection('xxx',username='xxx', password='xxx',cnopts=cnopts) as sftp:
localpath='TEST.txt'
remotepath='TEST.txt'
sftp.put(localpath,remotepath)
sftp.close()
답변
먼저 어떤 프로토콜을 사용하고 있는지 정말로 알고 싶을 것입니다. 귀하의 질문에서 FTP를 여러 번 언급했으며 코드 + 귀하가 말하는 개념 (known_hosts)은 SFTP 항목입니다.
FTP와 SFTP는 완전히 다른 두 프로토콜입니다. FTP는 클라이언트와 서버간에 파일을 전송하는 프로토콜이고 SFTP는 SSH 클라이언트와 서버간에 파일을 이동하는 데 사용됩니다.
해결 !!! 그래서 나는 Windows에 있고 sftp 전송을 위해 FileZilla 및 WinScp를 사용하지만 C : \ Users .... ssh 파일은 내가 아는 한 존재하지 않았습니다. Windows SSH 클라이언트를 다운로드했습니다.https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/
그런 다음 PowerShell을 사용하여 서버에 연결했습니다. 명령을 입력하면 ssh hostname
RSA 지문이 표시되고 연결 여부를 묻습니다. Yes를 입력하면 "경고 : 알려진 호스트 목록에 '호스트 이름'이 영구적으로 추가되었습니다. .ssh 파일이 C : \ Users .... ssh 디렉토리에 나타납니다. 그런 다음 Python에서 참조 할 수 있습니다.
감사합니다.