我正在尝试使用rsub在ssh中创建隧道以升华文本,我运行命令rmate .profile但我得到以下响应。我正在使用wateroof打开1p4和ip6上的端口52968,我按照了here的指示,它只是不工作
我在本地计算机上运行osx,在远程计算机上运行ubuntu 12.04我正在使用digitalocean运行
root@anderskitson:~# rmate .profile
/usr/local/bin/rmate: connect: Connection refused
/usr/local/bin/rmate: line 186: /dev/tcp/localhost/52698: Connection refused
Unable to connect to TextMate on localhost:52698
答案 0 :(得分:43)
我遇到了同样的问题。
让remoteHost =您尝试ssh到的计算机的IP或主机名。
我在本地计算机上运行ssh -R 52698:localhost:52698 remoteHost
,之后在remoteHost工作rmate .profile
。{/ p>
这导致我确定本地计算机上的〜/ .ssh / config不正确。
我设置〜/ .ssh / config看起来像这样:
Host remoteHost
RemoteForward 52698 localhost:52698
自从我做出改变以来,它一直在努力。
答案 1 :(得分:20)
对于在 Windows 上使用 PuTTy 获得同样错误的人,this commenter会提供很好的说明:
这是一个直观地解释的图像:
答案 2 :(得分:5)
我有同样的问题,这对我有用。如果您希望使用多个服务器,请执行以下操作:
Host *
RemoteForward 52698 localhost:52698
我查阅了这个链接:configure SSH config file并意识到你可以在配置文件中使用*。
通配符也可用于允许应有的选项 范围更广。
答案 3 :(得分:3)
我遇到了同样的问题,并在连接时将HOSTNAME
替换为实际IP-Address
时修复了问题:
例如:ssh pi@raspberrypi.local
到ssh pi@192.168.1.1
答案 4 :(得分:3)
我试图首次使用VS Code设置它并获得通用"连接被拒绝"即使我的配置似乎很好,也会出错。结果是因为我在安装rmate扩展(远程VSCode)后没有重新加载IDE。确保rmate服务器在本地计算机上处于活动状态,无论您使用何种IDE。
答案 5 :(得分:2)
我遇到了同样的问题并经历了大部分博客,我做了所有被告知的事情。 最后,我发现自己关闭了textmate或submile编辑器(强制退出),这就引起了问题。
答案 6 :(得分:0)
例如,我的SSH配置~/.ssh/config
文件通过远程转发与DigitalOcean连接,如下所示:
Host DigitalOcean
Hostname xxx.xxx.xxx.xxx
User username
RemoteForward 52698 localhost:52698
并在终端中调用
ssh DigitalOcean
rmate然后与我的本地Atom编辑器很好地连接
答案 7 :(得分:0)
rmate
无明显原因停止工作。原来我绊倒了“中间人”支票。我在执行ssh
-
\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
就我而言,此警告是预料之中的,因此我将其忽略。这可能不适用于您,因此验证主机身份。在警告结束时没有意识到这条线-
Port forwarding is disabled to avoid man-in-the-middle attacks.
难怪rmate
停止工作了。验证主机身份,然后从~/.ssh/known_hosts
中清除违规条目后,警告消失了,rmate
重新开始工作。
答案 8 :(得分:0)
我偶尔会遇到这个问题,至少对于我的设置(这可能非常特殊),我发现杀死 ssh 会话的僵尸实例可以完成这项工作。
我的特殊设置:
我通过 OSX 主机上的 VM (VMWare Fusion) 运行 Linux。然后我从 OSX ssh 进入 Linux 主机,并从 Linux 端启动 sublime。我通常会运行几个 ssh 会话。
我最近重新启动了我的 Mac(没有先关闭虚拟机,这可能很糟糕),一旦我回到虚拟机,就无法启动 Sublime - 得到了 OP 提到的“连接被拒绝”错误。< /p>
所以我在 Linux 端做了一个 const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
const bodyParser = require('body-parser');
const cors = require('cors');
let timerId = null;
let sockets = new Set();
app.use(express.static(__dirname + '/dist'));
io.on('connection', (socket) => {
sockets.add(socket);
console.log(`Socket ${socket.id} added`);
if (!timerId) {
startTimer();
}
socket.on('clientdata', (data) => {
console.log(data);
});
socket.on('disconnect', () => {
console.log(`Deleting socket: ${socket.id}`);
sockets.delete(socket);
console.log(`Remaining sockets: ${sockets.size}`);
});
});
,并寻找所有 :
ps aux
(其中 root 657399 0.0 0.1 13956 9332 ? Ss 14:52 0:00 sshd: user [priv]
user 657461 0.0 0.0 14088 5420 ? S 14:52 0:00 sshd: user@pts/1
是我的用户名)。我杀死了 user
工作,例如user
以上,瞧!现在一切正常。当然,在杀死这些作业的过程中,您很可能会杀死您当前所在的 ssh 会话,因此您将不得不重新登录您的会话。
这可能不适用于在远程机器上没有必要的终止权限的用户,所以不知道这有多大用处,但我想我会把它放在那里。