我的手机上安装了 Android SimpleSSHD 应用程序。在我的 Arch Linux 桌面上,我可以通过命令行 ssh 到我的手机。我还可以从命令行 sftp 到我的手机。
但是,KDE Dolphin 拒绝连接。
我有一个 ~/.ssh/config 文件,其中包含以下内容:
Host GalaxyS8
HostName 192.168.1.1
Port 2222
IdentityFile /home/myuser/.ssh/id_rsa
全部以下命令在终端中起作用:
ssh -p 2222 -i /home/myuser/.ssh/id_rsa 192.168.1.1
ssh -p 2222 -i /home/myuser/.ssh/id_rsa [email protected]
ssh GalaxyS8
sftp -o IdentityFile=/home/myuser/.ssh/id_rsa -o Port=2222 192.168.1.1
sftp GalaxyS8
然而,没有任何Dolphin 中的以下工作:
fish://GalaxyS8
sftp://GalaxyS8
sftp://[email protected]:2222
fish://[email protected]:2222
使用最后一个命令时,Dolphin 报告:“与主机 192.168.1.1 的连接已断开。”在打电话时,SimpleSSHD 报告 Pubkey 身份验证成功,然后收到 Disconnect。 SimpleSSHD 在电话上未报告任何错误。
所以这似乎是 KDE Dolphin 问题。我在 Arch 系统的 systemd 日志中没有看到任何与此相关的消息。
答案1
我通过以下步骤让它工作:
必须使用 sftp:// 而不是 Fish://
必须输入完整的 URI,例如 sftp://[电子邮件受保护]:2222/SD卡/路径/
必须有一个包含正确值的 ~/.ssh/config 文件才能使用私钥文件(无密码登录)。我在问题中发布的配置文件对我有用。
必须有一个有效的已知主机密钥,并且事实证明有一个海豚中的错误与此相关的以及一个简单的解决方法。我使用的解决方案来自这个博客:
“找不到该服务器的主机密钥,但存在另一种类型的密钥。”将 sftp 与 dolphin/KIO 一起使用时
作者:杰森“moofang”
2011年6月29日
在 Howto、KDE、Linux 中
我的 Cosfest X.1 活动帖子已经写了一半,但今天工作时遇到了另一个有趣的问题,所以我将在这里再写一篇快速解决问题的帖子。如果您在尝试通过 dolphin 或 KIO 访问 sftp 位置时,通常会看到以下错误消息:
“找不到该服务器的主机密钥,但存在另一种类型的密钥。攻击者可能会更改默认服务器密钥,以使您的客户端误认为该密钥不存在。请联系您的系统管理员。”
这可能适合你。特别是如果您之前已成功通过 ssh 登录到目标主机。经过讨论这里,总的来说,问题似乎是 KIO 无法识别在 ssh known_hosts 列表中指定主机的特定(新?)格式(已提交的一个错误这里)。幸运的是,有一种解决方法 - 由于 KIO 无法识别 ssh 生成的known_hosts 条目,因此我们只需让 KIO 生成该条目即可。
备份您的 ~/.ssh/known_hosts 文件,然后使用您喜欢的文本编辑器打开它。查找并删除与您尝试通过 sftp 连接的主机关联的条目。如果找不到它,您可以删除文件中的所有内容 - 这样做的副作用是,下次您 ssh 到先前已知的位置时,系统会再次提示您重新添加密钥。完成后,打开 dolphin 并尝试通过 sftp 进入您想要的目标位置。它应该提示您添加主机的密钥 - 只要告诉它“是”,您就应该能够成功登录。
就是这样!从那时起,您应该能够随时将 ssh 或 sftp-via-KIO 定向到该位置。