我正在编写一个工具,除其他外,它需要能够通过 SSH 连接修改文件。但是,出于安全考虑,我不想在远程服务器上调用 CLI 工具(TL;DR:字符串转义真的很难)。我如何使用 (a) ssh 命令行工具(在本地调用)或 (b)golang.org/x/crypto/ssh/*包来执行此操作?编辑:对不起,我忘了提及。我需要能够在一个会话中完成这一切。在某些客户端上,所连接的服务器位于负载平衡器之后,因此如果我进行多次调用,最终可能会连接到不同的服务器。
3 回答
三国纷争
TA贡献1804条经验 获得超7个赞
与 ssh 建立主连接,保持活动状态。然后您可以将文件下载到您的本地主机,修改它并使用 scp 再次上传它,同时通过主连接进行隧道传输。
见https://unix.stackexchange.com/a/2869
胡说叔叔
TA贡献1804条经验 获得超8个赞
我不确定你打算怎么做。SSH 是一个非常严格的协议,它允许你做特定的事情:文件传输和终端连接。
您可以在此处查看不同 ssh 服务器具有的功能:https : //en.wikipedia.org/wiki/Comparison_of_SSH_servers#Features
但是 SSH 只是一个协议:一组 SSH 服务器(而不是 SSH 客户端,这将是您的 go 程序)会理解的命令。
如果您想执行特定操作,我建议您构建自己的服务器,使用 SSL 或 TLS 等加密技术保护该服务器,您的客户端将连接到该服务器。
PS:这个问题并不是真正与 Go 相关,而是更多与 SSH 相关,因为它对任何语言都一样。
- 3 回答
- 0 关注
- 137 浏览
添加回答
举报
0/150
提交
取消