我正在使用SSH访问我大学的afs系统。我喜欢使用rmate(远程TextMate),这需要SSH隧道,所以我在我的.bashrc
中包含了这个别名。
alias sshr=ssh -R 52698:localhost:52698 username@corn.myschool.edu
它一直有效。直到现在。
答案 0 :(得分:48)
我遇到了同样的问题。为了找到已打开的端口,您必须在'corn.myschool.edu'计算机上发出此命令:
sudo netstat -plant | grep 52698
然后杀死所有出现此问题的进程(用进程ID替换xxxx)
sudo kill -9 xxxx
(更新:将选项更改为-plant
,因为这是一个不错的助记符)
答案 1 :(得分:22)
我打开了另一个SSH连接。在打开SSH隧道之前,我只需要关闭该连接。
进一步说明: 一旦建立了一个ssh连接,后续连接就会产生一条消息:
警告:侦听端口52698的远程端口转发失败
此消息无害,因为转发只能设置一次,一个转发将适用于同一台机器的所有ssh连接。当你退出shell直到所有远程编辑会话都完成时,打开转发的原始ssh会话将保持打开状态。
答案 2 :(得分:3)
我遇到了这个问题,但是当它连接到我没有sudo priviliges的服务器时,所以表明运行sudo netstat ...
的最高响应对我来说是不可行的。
我最终发现这是因为仍有rmate实例运行,所以我使用ps
列出正在运行的进程,然后kill -9 pid
(其中pid是rmate的进程ID)。 / p>
答案 3 :(得分:2)
这也解决了我在这里报告的问题。为避免此通知,应在SSH配置中启用“ AllowTcpForwarding”。
答案 4 :(得分:0)
就我而言,问题是远程系统没有正确设置DNS,甚至无法解析自己的主机名。确保远程系统中的/etc/resolv.conf中有一个可用的DNS。