当我尝试使用 Windows 10 在命令行上连接到 FTP 服务器时,出现了奇怪的键盘行为......
>sftp [email protected]
The authenticity of host 'something.something.com (12.345.67.89)' can't be established.
ECDSA key fingerprint is xxxxx:dkjhroihoiohgnb9q94904oeie844598576984deoh.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
此时我无法输入“y”或其他任何内容。键盘不知何故被禁用了。只有回车键有效,命令中止。
同样的行为发生在两台不同的 Windows 10 机器(一台台式机和一台笔记本电脑)上。
最后,我下载了 WinSCP 并成功使用此 GUI 连接到 ftp 服务器,但我更喜欢命令行。
对于命令行行为发生了什么,您有什么想法吗?
答案1
ECDSA 指纹警告是因为您的 .ssh\known_hosts 文件中的主机名显示自上次登录以来不同的指纹。这可能是一个严重的安全问题。
因此,它给出的警告要求您输入整个单词“yes”才能继续。可能是终端没有显示正在输入的字符,因此请尝试输入完整的单词,然后按回车键。
答案2
sftp 命令要求您回答“是”或“否”或指纹。它不会回显任何内容,因此看起来好像键盘被锁定了,就像您输入密码一样。此外,退格键或 CTRL+V 等操作不起作用。
如果您打算使用指纹选项,则输入需要在前面输入“SHA256:”。如果您想粘贴此信息,则需要使用左上角下拉菜单中的编辑 > 粘贴。
但一般来说,这种命令行不太安全,因为您很难通过查看指纹来验证指纹。您可以强制使用启用了 StrictHostKeyChecking 的已知主机。
sftp -oStrictHostKeyChecking=true [email protected]
当然,您需要提前准备好包含指纹详细信息的已知主机文件。
我在 Microsoft 上没有找到有关 sftp 的文档,但它基本上可以在 Linux 手册页和类似来源中找到,例如人 1 sftp。