qax*_*uux 111 linux dns ssh networking
我正在尝试使用Raspberry Pi建立VPN,第一步是ssh
从本地网络外部获取进入设备的能力.无论出于何种原因,这被证明是不可能的,我没有丝毫的线索.当我尝试ssh
进入我的服务器时user@hostname
,我收到错误:
ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)
但是,我可以登录到服务器,
ssh user@[local IP]
Run Code Online (Sandbox Code Playgroud)
服务器是Raspberry Pi Model B运行Raspbian的最新发行版,而我正在尝试连接它的机器是运行Mavericks的Macbook Pro.ssh
我设置Raspbian时在Raspberry Pi上启用了.
我已经仔细阅读了Stack Overflow几个小时,试图看看是否有其他人遇到过这个问题而且我还没有找到任何东西.ssh
我找到的每个教程都说我应该能够在远程计算机上进行设置,并使用主机名从任何地方登录,而且我从未取得过成功.
tok*_*khi 85
我有同样的问题连接到远程机器.但我设法登录如下:
ssh -p 22 myName@hostname
Run Code Online (Sandbox Code Playgroud)
要么:
ssh -l myName -p 22 hostname
Run Code Online (Sandbox Code Playgroud)
小智 82
如果您使用的是Mac,重新启动DNS响应程序会为我解决问题.
sudo killall -HUP mDNSResponder
Run Code Online (Sandbox Code Playgroud)
小智 23
最近我遇到了同样的问题.我能够在我的网络上搜索我的pi,但不能从我的家庭网络外部访问.
我已经:
另外,我在我的路由器上设置端口用于托管网站,我甚至将端口22端口转发到我的pi的静态IP for ssh,但是我将该字段留空了,您指定了正在执行端口转发的应用程序路由器.无论如何,我在这个领域添加了'ssh',VOILA!从任何地方到我的pi的工作ssh连接.
我会写出路由器的端口转发设置.
(ApplicationTextField)_ssh(外部端口)_22(内部端口)_22(Protocal)_Both(到IP地址)_192.168.1.###(已启用)_checkBox
但是,不同路由器的端口转发设置可能不同,因此请查找路由器的说明.
现在,当我在家庭网络之外时,我输入以下内容连接到我的pi:
ssh pi @ [主机名]
然后我可以输入我的密码并连接.
Ped*_*dro 14
就我而言,我正在尝试像这样 ssh
ssh pedro@192.168.2.179:22
Run Code Online (Sandbox Code Playgroud)
当正确的格式是:
ssh pedro@192.168.2.179 -p 22
Run Code Online (Sandbox Code Playgroud)
如果您需要从世界上任何地方访问您的VPN,您需要注册域名并让它指向您的VPN /网络网关的公共IP地址.您还可以使用动态DNS服务将主机名连接到公共IP.
如果您只需要从Mac ssh到本地网络中的 Raspberry ,请执行以下操作:在Mac上,进行编辑/etc/hosts
.假设Raspberry有主机名"berry"和ip"172.16.0.100",请添加一行:
# ip hostname
172.16.0.100 berry
Run Code Online (Sandbox Code Playgroud)
现在:ssh user@berry
应该工作.
小智 6
我遇到了同样的问题:“首选项”->“共享”->“远程登录”中显示的地址不起作用,我收到“...提供的节点名或服务名,或未知”。但是,当我手动编辑设置(在“首选项”->“共享”->“远程登录”->“编辑”)并启用“使用动态全局主机名”时,它突然起作用了。
对我来说,问题是我的~/.ssh/config
文件中有一个拼写错误。我有:
Host host1:
HostName 10.10.1.1
User jlyonsmith
Run Code Online (Sandbox Code Playgroud)
问题是:
在之后host1
- 它不应该在那里。ssh
不会对~/.ssh/config
文件中的拼写错误发出警告。当它找不到时,host1
它会在本地查找机器,找不到它并打印神秘的错误消息。
如果您的命令是:
$ ssh -p 1122 path/to/pemfile user@[hostip/hostname]
Run Code Online (Sandbox Code Playgroud)
你也会面临同样的错误
ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)
当您错过-i /path/to/pemfile
ssh选项时
所以命令应该是:
$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]
Run Code Online (Sandbox Code Playgroud)