使用代理服务器与 sftp 连接

使用代理服务器与 sftp 连接

我正在尝试使用以下命令使用代理连接到外部服务器:

sftp -v -o "ProxyCommand /usr/bin/nc -X connect -x proxyserver.com:8080 %h %p" [email protected]

这不起作用。我得到以下输出:

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: Applying options for *

debug1: Executing proxy command: exec /usr/bin/nc -X connect -x proxyserver.com:8080 [email protected]

debug1: permanently_drop_suid: 456876
bash: No such file or directory

我认为该命令的格式正确,它似乎在“permanently_drop_suid”步骤失败。有人知道这里可能出了什么问题吗?我可以使用 WinSCP 进行连接,因此连接详细信息是正确的。非常感谢任何帮助!

答案1

最后一条消息bash: No such file or directory意味着远程无法找到bash要执行的二进制文件。因此,这可能是远程端的配置问题。

您可以尝试使用其他用户连接到 server.com 或检查活动 shell 的远程“user@server”设置吗?

另外,您可以 ssh 到远程吗,例如。ssh -o ProxyCommand... user@server

现在,我面临着类似的问题,这是我的结果:

$ sftp -v -o ConnectTimeout=3 \
    -o ProxyCommand='/usr/bin/nc -X connect -x proxyserver.com:8080 %h %p' \
    -oPort=443 user@server

Connecting to server...
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Executing proxy command: exec /usr/bin/nc -X connect -x proxyserver.com:8080 server 443
[...]
debug1: permanently_drop_suid: 21889
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<2048<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: checking without port identifier
The authenticity of host '[server]:443 (<no hostip for proxy command>)' can't be established.
RSA  key fingerprint is <the_finger_print>.
Are you sure you want to continue connecting (yes/no)? ^C

答案2

op 命令有 2 个问题 - 格式不正确,并且缺少端口号...原始: sftp -v -o "ProxyCommand /usr/bin/nc -X connect -x proxyserver.com:8080 %h %p"[电子邮件受保护]

更正: sftp -v -o ProxyCommand="/usr/bin/nc -X connect -x proxyserver.com:8080 %h %p"[电子邮件受保护]999(无论目标主机需要什么端口号。)

相关内容