ssh resolves -p 1234 hostname =“localhost”但不解析hostname =“localhost:1234”

时间:2014-12-02 00:04:22

标签: ssh

几周后我升级到了Fedora 20。我在升级过程中遇到的问题非常少,系统也很稳定。我有一个挥之不去的问题如下所述。

我的局域网上有一台计算机,反向端口正向设置回最近更新的fedora 20机器。我可以验证反向正向工作,因为以下是从fedora 20计算机成功的:

$ ssh -p 1234 xxxxx@localhost 
xxxxxx@localhost's password: 
Last login: Mon Dec  1 14:08:22 2014 from localhost.localdomain

但是,如果我在localhost之后指定端口号,则会出现“无法解决”错误,如下所示:

$ ssh -v xxxxx@localhost:1234
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 51: Applying options for *
ssh: Could not resolve hostname localhost:1234: Name or service not known

因此,在第一种情况下,它会看到hostname = localhost并将其解析为IP地址。在第二种情况下,它看到hostname =“localhost:1234:”...

/ etc / host的内容是:

127.0.0.1   localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

现在我正在尝试确定这是一个解决方案还是别的东西。 “挖掘本地主机”不会返回答案部分,因此建议它。同时localhost:port#在浏览器中工作。我不知道如何从/ etc / hosts解析localhost,我假设NetworkManager这样做了吗?我没有在我的LAN上运行任何类型的内部DNS服务器。

如果需要,我很乐意提供更多信息。提前谢谢

2 个答案:

答案 0 :(得分:1)

$ ssh -v xxxxx@localhost:1234
ssh: Could not resolve hostname localhost:1234: Name or service not known

"用户@主机:端口"或者"主持人:端口"根本不是用于在ssh命令行上指定目标的有效语法。 ssh在" @"之后对待一切作为主机名。它并不将该字段的一部分视为端口号,并且没有记录这样做。

特定错误表示ssh正在尝试查找名为" localhost:1234"的不存在主机的IP地址。并且失败了。

答案 1 :(得分:0)

您必须使用-p选项指定具有SSH的端口,而不是hostname:port格式。

ssh -v xxxxx@localhost -p 1234