我遇到了奇怪的事情。我在 gCloud 中设置了 Compute Engine VM 实例。我已经设置了所有内容,包括类似于以下位置所述的 SFTPhttps://devtidbits.com/2011/06/29/implement-a-sftp-service-for-ubuntudebian-with-a-chrooted-isolated-file-directory/。
我创建了 2 个不同的用户,他们具有不同的用户 ID,属于同一组(用于 SFTP 使用)。然后我为每个用户创建了公钥/私钥 SSH 密钥对(如在https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys)。
然后我尝试了两个完全相同的场景,具有相同的设置,只是在两个不同的级别 - 在项目级别设置元数据(https://console.cloud.google.com/compute/metadata/sshKeys?project=PROJECT_ID)以及编辑实例页面(实例级别)上的虚拟机实例键(https://console.cloud.google.com/compute/instancesDetail/zones/europe-west1-b/instances/[INSTANCE_NAME]?project=[PROJECT_ID]&graph=GCE_CPU&duration=PT1H)。它们两个都应该可以工作。
使用项目级别的元数据:
- 我将第一个公钥(假设是 User1 的公钥)添加到项目元数据中,并尝试使用 User1 的用户名和私钥连接 FileZilla。一切正常。
- 我添加了第二个公钥(假设是 User2 的公钥),并尝试使用 User2 的用户名和私钥连接 FileZilla。一切正常。
- 我尝试使用 User1 的用户名和私钥再次连接 FileZilla。没有连接(错误:断开连接:没有可用的受支持的身份验证方法(服务器发送:公钥)。错误:无法连接到服务器)
- 在 gCloud 设置中删除了两个公钥。
在编辑实例页面上使用虚拟机实例的密钥:- 同样的情况,没有运气
- 我将第一个公钥(假设是 User1 的公钥)添加到实例设置,并尝试使用 User1 的用户名和私钥连接 FileZilla。一切正常。
- 我添加了第二个公钥(假设是 User2 的公钥),并尝试使用 User2 的用户名和私钥连接 FileZilla。一切正常。
- 我尝试使用 User1 的用户名和私钥再次连接 FileZilla。没有连接(错误:断开连接:没有可用的受支持的身份验证方法(服务器发送:公钥)。错误:无法连接到服务器)
- 在 gCloud 设置中删除了两个公钥。
我一直打开 FileZilla(也尝试在步骤 2 和步骤 3 之间重新启动 FileZilla),但问题仍然存在。由于每次我都可以使用设置公钥的用户连接到 SFTP最后的,我不认为FileZilla本身存在问题。
好像我不能使用多个用户。真的不知道我还能做什么……有什么建议吗?
顺便说一句,我尝试了类似的方案,尝试用 Putty 连接到 SSH,但同样——每次我都只能与我在 gCloud 设置中设置公钥的用户连接最后的。