通过代理进行 ssh 连接,但找不到连接

通过代理进行 ssh 连接,但找不到连接

我从名片 CD iso(基本上是它的一个非常精简的版本)安装了 debian。

我正在尝试通过代理 (在我的 .ssh/config 中设置) ssh 到一台机器,但是收到一个错误:

ssh [email protected] -v
OpenSSH_5.5p1 Debian-6+squeeze2, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /home/user/.ssh/config
debug1: Applying options for servername.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Executing proxy command: exec connect -S proxy-im.proxyhost.com:1080 servername.com 22
debug1: permanently_drop_suid: 1000
debug1: identity file /home/user/.ssh/id_rsa type -1
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: identity file /home/user/.ssh/id_dsa-cert type -1
/bin/bash: line 0: exec: connect: not found
ssh_exchange_identification: Connection closed by remote host

看来我的机器上没有安装名为“connect”的命令。这是该命令的手册页: http://perkamon.alioth.debian.org/online/man2/connect.2.php

apt-get install connect 失败。它是其他软件包的一部分吗?如果是,我该如何找到它?

答案1

我刚刚在一个流行的搜索引擎中搜索了“apt-get install connect”,它自动完成为“apt-get install connect-proxy”

我仍然希望看到一种方法来通过手册页知道这个命令在哪个包中,否则有人如何追踪这样的事情。

答案2

为了得到特定命令,我通常使用包来找出要安装哪个包command-not-found。可以通过输入以下命令来安装:

apt-get install command-not-found

安装command-not-found并重新启动后bash,我只需输入即可connect找到所需包的名称:

$ connect
The program 'connect' is currently not installed. You can install it by typing:
sudo apt-get install connect-proxy

答案3

也许您找到了错误的配置文件或教程。尝试将 nc(nectat) 与 ProxyCommand 一起使用:

代理命令 /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p

或者从 shell

ssh -v -i ~/.ssh/my_Favorite_key.pem -o ProxyCommand='nc -x jumphost:30022 %h %p'user@dst_host_name

在较新的 ssh 版本(自 7.3 起)中,您可以使用 ProxyJump,有关详细信息,请参阅 ssh_config 手册页。另一个很好的教程是 https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

答案4

在这里您可以找到解决方案

ssh USER@FINAL_DEST -o "ProxyCommand=nc -X connect -x PROXYHOST:PROXYPORT %h%p”

相关内容