为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白板的微信 2022-10-18 19:48:29
我正在创建一个 Python AWS Lambda 函数,该函数连接到 db 以将数据提取为 CSV,然后将该 CSV sftp 到 SFTP 服务器 (abc.example.com) 中。我正在使用 pysftp 和 Paramiko。看起来 pysftp 需要一个私钥文件来实现与 SFTP 主机的无密码连接。如何获取此私钥文件?ssh-keygen我们是否需要在目标 SFTP 主机上创建公钥/私钥对 ( )?然后在 Lambda 函数中使用该密钥的公共部分?
查看完整描述

2 回答

?
MM们

TA贡献1886条经验 获得超2个赞

是的,如果您还没有它,那么您必须ssh-keygen在 sftp 主机上创建密钥并使用它。


import pysftp

with 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


查看完整回答
反对 回复 2022-10-18
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

只需以与普通(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 )


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信