我無法從家中的本機連線到公司網路內受 SearchGuard 保護的 ElasticSearch 執行個體。我正在使用本地 SSH 轉發,就像我在 phpMyAdmin 實例中工作一樣。
我的 ~/.ssh/config 包含這些:
Host workstation-forward-phpmyadmin
LocalForward localhost:8080 $WORKSTATION:443
HostKeyAlias $GATEWAY
Hostname $GATEWAY
ExitOnForwardFailure yes
User oschluet
Host workstation-forward-elasticsearch
LocalForward localhost:9200 $WORKSTATION:9200
HostKeyAlias $GATEWAY
Hostname $GATEWAY
ExitOnForwardFailure yes
User oschluet
我在一個screen
會話中進行這些操作,如下所示:
ssh workstation-forward-elasticsearch
或ssh workstation-forward-phpmyadmin
併分離螢幕。
現在我可以透過瀏覽器存取 phpMyAdmin,https://localhost:8080
或使用 telnet 直接與 Web 伺服器對話。不幸的是,ElasticSearch 在這方面似乎有問題。從公司網路內的另一台機器,我可以像這樣存取 ElasticSearch:
oschluet@ravenwood:~$ curl -k https://$WORKSTATION:9200 --user $user:$pass
{
"name" : "redacted",
"cluster_name" : "redacted",
"cluster_uuid" : "redacted",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
在本機使用相同的憑證不會產生任何結果:
[oschlueter@B5400 ~]$ curl -k https://localhost:9200 --user $user:$pass
# nothing happens
不使用憑證:
oschluet@ravenwood:~$ curl -k https://$WORKSTATION:9200
Unauthorized
[oschlueter@B5400 ~]$ curl -k https://localhost:9200
# again nothing
但是 telnet 開啟連線:
[oschlueter@B5400 ~]$ telnet localhost 9200
Trying ::1...
Connected to localhost.
Escape character is '^]'.
我嘗試讓 ElasticSearch 監聽 IP 位址、主機名,0.0.0.0
所有這些都允許我從網路內的另一台電腦進行連接,但無法與我的本機電腦建立連接。我是 $WORKSTATION 和我的本機電腦的管理員。有人可以幫我找到問題嗎?