为 AWS Python Lambda 生成私钥以 sftp 到目标主机

我正在创建一个 Python AWS Lambda 函数,该函数连接到 db 以将数据提取为 CSV,然后将该 CSV sftp 到 SFTP 服务器 (abc.example.com) 中。我正在使用 pysftp 和 Paramiko。看起来 pysftp 需要一个私钥文件来实现与 SFTP 主机的无密码连接。如何获取此私钥文件?

ssh-keygen我们是否需要在目标 SFTP 主机上创建公钥/私钥对 ( )?然后在 Lambda 函数中使用该密钥的公共部分?


白板的微信
浏览 108回答 2
2回答

MM们

是的,如果您还没有它,那么您必须ssh-keygen在 sftp 主机上创建密钥并使用它。import pysftpwith pysftp.Connection('hostname', username='me', private_key='/path/to/keyfile') as sftp:    #    # ... do sftp operations    #参考:https ://pysftp.readthedocs.io/en/release_0.2.8/cookbook.html

慕标琳琳

只需以与普通(GUI/命令行)SFTP 或 SSH 客户端相同的方式设置公钥身份验证。没有什么 pysftp/Python/Lambda 特定的。互联网上有无数指南展示了如何做到这一点。例如我的文章设置 SSH 公钥身份验证。然后在您的 Python/pysftp 代码中使用私钥:Connect to SFTP with key file using Python pysftp由于 pysftp 需要物理文件中的密钥,这在 AWS Lambda 中可能很复杂,如果您切换到 Paramiko:SSH/SCP through Paramiko with key in string,您还可以在 Python 代码中硬编码密钥 (请参阅pysftp vs. Paramiko )
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python