首页 > 解决方案 > 如何正确添加 ssh 密钥

问题描述

我正在设置 sftp 连接:

import os
from Crypto.Cipher import AES 
import paramiko
import pysftp as sftp

cnopts = sftp.CnOpts(knownhosts='C:/Users/mposc/.shh/known_hosts/')
cnopts.hostkeys.load('projectKey.pub')
#cnopts.hostkeys = None

def sftpconnect():
    try:
        cnnt = sftp.Connection(host="example.host.com", username="usersample", password="*****", cnopts=cnopts)

        print("connection succesful")
        cnnt.close()
    except Exception as e:
        print (str(e))

sftpconnect()

我有以下已知论点:

UserWarning: Failed to load HostKeys from C:/Users/mposc/.shh/known_hosts/.  You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename)) or disableHostKey checking (cnopts.hostkeys = None).

我已经使用 Windows cmd ( https://phoenixnap.com/kb/generate-ssh-key-windows-10 )创建了公钥,并且文件存储在这里:C:\Users\mposc.shh\known_hosts\projectKey。酒馆

我四处搜索并找到了非常有用的用户注释,尤其是:Verify host key with pysftp

我仍在为此苦苦挣扎:如果我设置 cnopts.hostkeys.load('projectKey.pub') 我无法连接并出现错误:UserWarning: Failed to load HostKeys from C:/Users/mposc/.shh/known_hosts/。如果我设置 cnopts.hostkeys = None 我可以连接..

我读到这是一个 pysftp 错误,但我担心这不安全。我已经尝试了 pysftp 库中的几个不同选项,并按照不同站点的建议。如何正确添加文件名?

标签: pythonpysftp

解决方案


推荐阅读