我在 Windows 7 上使用 Cygwin。我已经安装了 OpenSSH 客户端,我正在使用它通过 localhost 连接到安装在 virtualbox 上的 Ubuntu 服务器。我使用以下命令通过 ssh 进行连接:
ssh -p 3022 [email protected]
但是当我尝试使用相同的命令通过 sftp 连接时,我收到此消息:
ssh:无法解析主机名 3022:名称或服务未知
连接已关闭
我正在使用的命令是这个
sftp -p 3022 [email protected]
知道为什么我可以通过 ssh 连接但不能通过 sftp 连接吗?
答案1
因为使用sftp
,-p
开关具有不同的含义。它表示“始终保留时间”。它是一个无参数开关,因此以下内容3022
被解释为独立参数(=主机名)。
要设置自定义端口,请使用-P
开关(大写 P),OpenSSH 5.4p1 及更新版本支持:
sftp -P 3022 [email protected]
使用旧版本的 OpenSSH:
sftp -o Port=3022 [email protected]
请注意,在某些旧版本的 OpenSSH 中,-P
还有另一层含义。