尝试连接工作程序时出现ssh键错误

时间:2017-07-13 20:20:51

标签: concourse

我正试图第一次建立大厅。我经历了教程并成功地在流浪汉和hello world演示中运行了大厅。我想知道设置工作者,现在这都是在我的本地机器上,做iOS构建。我似乎无法获得正确的ssh键设置。我一直在说:

{"timestamp":"1499972495.137019873","source":"worker","message":"worker.beacon.restarting","log_level":2,"data":{"error":"failed to dial: failed to construct client connection:%!(EXTRA *errors.errorString=ssh: handshake failed: remote host public key mismatch)","session":"3"}}```

我根据教程生成了本地工作键,并在/opt/concourse找到了vagrant vm中的键。但是,我从服务器为TSA密钥复制的任何公钥似乎都不符合预期。

我遇到了麻烦,因为我正在运行教程中的精简版吗?

我想使用/opt/concourse个中的键吗?

1 个答案:

答案 0 :(得分:0)

我在TSA注册工作人员时遇到了麻烦,但在我的情况下,错误消息略有不同(EOFpacket too large)。由于它是SSH错误,请尝试逐步调试它。我不确定你的设置是什么样的,我的如下:

TSA    (from docker-compose) listening on 2222
Host   (runs concourse). 127.0.0.1:2228 maps to docker container on :2222
nginx  listening on 2222
Worker (on Windows, OS X, …) registers at TSA

其中一些部分会破坏SSH流量,因此请尝试直接使用SSH登录此端口。一步一步,首先在主机上进行测试(看看你是否可以访问docker容器),然后从worker调试(看看你是否可以通过nginx)。对于上述情况

# On the host
ssh -i worker-key-path -p 2222 127.0.0.1 -v
# On the worker
ssh -i worker-key-path -p 2222 example.com -v

请注意,authorized_worker_keys文件中的TSA必须知道工作人员的公钥。

成功登录后,您应该看到

Authenticated to example.com ([12.34.56.78]:2222).
[...]
PTY allocation request failed on channel 0
shell request failed on channel 0

如果您看到类似

的错误消息
ssh_exchange_identification: Connection closed by remote host

然后nginx配置错误,应该使用stream重定向:

stream {
    server {
    listen 2222;
    proxy_pass 127.0.0.1:2228;
    #proxy_ssl on;
    }
}