ssh : 호스트 이름 [hostname]을 (를) 확인할 수 없습니다 : nodename 또는 servname 제공 또는 알 수 없음


132

Raspberry Pi로 VPN을 설정하려고하는데 첫 번째 단계는 ssh로컬 네트워크 외부에서 장치에 액세스 하는 기능을 얻는 것 입니다. 어쨌든 이것이 불가능하다는 것을 증명하고 있으며 그 이유를 전혀 알지 못합니다. ssh로 서버에 접속 하려고 user@hostname하면 오류가 발생합니다.

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known 

그러나 다음을 사용하여 서버에 로그인 할 수 있습니다.

ssh user@[local IP]

서버는 최신 Raspbian 배포판을 실행하는 Raspberry Pi Model B이며 연결하려는 시스템은 Mavericks를 실행하는 Macbook Pro입니다. sshRaspbian을 설정할 때 Raspberry Pi에서 활성화되었습니다.

다른 사람 이이 문제가 있는지 확인하려고 몇 시간 동안 스택 오버플로를 익히고 아무것도 찾지 못했습니다. ssh내가 찾은 모든 자습서는 원격 컴퓨터에서 설정하고 호스트 이름을 사용하여 어디서나 로그인 할 수 있어야한다고 말했지만 성공하지 못했습니다.


원래 오류는 특정 문제를 가리키고 [hostname]있습니다. 사용중인 모든 것을 시도하려는 위치에서 해결할 수 없습니다. 않습니다 nslookup [hostname]당신이 다시 줄 [local IP]당신이 기다리고있어?
admdrew 님이

2
nslookup [hostname]뱉어 내고; 서버 : 8.8.8.8 주소 : 8.8.8.8 # 53 ** 서버가 [호스트 이름]을 찾을 수 없습니다 : 내 Macbook에서 실행할 때 NXDOMAIN
qaxf6auux

2
확실하게-에 실제 호스트 이름을 입력 [hostname]하고 있습니까?
admdrew 님이

이 출력은 사용하려는 호스트 이름에 대해 전혀 모르는 Google의 퍼블릭 DNS 서버를 사용하고 있음을 보여줍니다. 호스트 이름에 대한 DNS 레코드를 정확히 어떻게 설정합니까?
admdrew 님이

2
Server: 192.168.0.1 Address: 192.168.0.1#53 ** server can't find mrddr: NXDOMAIN
Nakilon

답변:


29

최근에 같은 문제가 발생했습니다. 네트워크의 파이로 ssh를 할 수 있었지만 홈 네트워크 외부에서는 오지 못했습니다.

나는 이미했다 :

  • 내 홈 네트워크에 ssh를 설치하고 테스트했습니다.
  • 내 pi의 고정 IP를 설정하십시오.
  • 동적 DNS 서비스를 설정하고 내 pi에 소프트웨어를 설치했습니다. 정적 ip를 설정하기 위해 이러한 지침 을 참조 했으며 더 많은 지침 리소스가 있습니다.

또한 웹 사이트를 호스팅하기 위해 라우터에서 포트 전달을 설정했으며 포트 22를 ssh의 고정 IP로 고정했습니다. 그러나 포트 전달을 수행하는 응용 프로그램을 지정하는 필드를 비워 두었습니다. 라우터. 어쨌든이 필드에 'ssh'를 추가했습니다. 어디서나 내 파이에 작동하는 ssh 연결.

라우터의 포트 포워딩 설정을 작성하겠습니다.

(ApplicationTextField) _ssh (외부 포트) _22 (내부 포트) _22 (프로토콜) _ 둘 다 (IP 주소로) _192.168.1. ### (사용) _checkBox

포트 전달 설정은 라우터마다 다를 수 있으므로 라우터의 방향을 찾으십시오.

이제 홈 네트워크 외부에있을 때 다음을 입력하여 pi에 연결합니다.

ssh pi @ [호스트 이름]

그런 다음 비밀번호를 입력하고 연결할 수 있습니다.


109

Mac을 사용하는 경우 DNS 응답자를 다시 시작하면 문제가 해결되었습니다.

sudo killall -HUP mDNSResponder

또한 도메인을 ping, nslookup 및 발굴해야했습니다. 이 중 어느 것이 도움이되었는지 확실하지 않습니다. 어쩌면 기다리는 것이 도움이 될 것입니다.
Samizdis

이 문제는 Mac을 다시 시작한 후에 시작되었습니다. 부팅 중에 엉망이 된 것을 몰라
murli

1
또한 이것이 왜 작동하는지 그리고 처음에 문제를 일으키는 원인이 무엇인지 궁금합니다.
신비한 콜라

nslookup작동하지만 ssh / ping / 이 작동하지 않는 경우 문제가 해결됩니다. 감사.
에릭 B

93

원격 컴퓨터에 연결하는 것과 동일한 문제가 발생했습니다. 하지만 아래와 같이 로그인 할 수있었습니다.

ssh -p 22 myName@hostname

또는:

ssh -l myName -p 22 hostname

1
마침내 작동합니다! 구문에 버그가 있어야합니다ssh myName@hostname:myPort
Edoardo

10

전세계 어디에서나 VPN에 액세스해야하는 경우 도메인 이름을 등록하고 VPN / 네트워크 게이트웨이의 공용 IP 주소를 가리켜 야합니다. 동적 DNS 서비스를 사용하여 호스트 이름을 공개 IP에 연결할 수도 있습니다.

Mac에서 로컬 네트워크 내부의 Raspberry로만 ssh해야하는 경우 다음과 같이하십시오. Mac에서을 편집하십시오 /etc/hosts. 라즈베리에 호스트 이름이 "berry"이고 IP가 "172.16.0.100"이라고 가정하면 한 줄을 추가하십시오.

# ip           hostname
172.16.0.100   berry

지금 : ssh user@berry작동합니다.


위의 것 외에도, 나는 내 서버 URL의 IP를 알기 위해 "windows-cmd"를 사용했습니다. 나는 IP를 얻기 위해 "핑 URL"을했다. 따라서 "/ etc / hosts"에 IP와 URL 쌍을 추가했습니다. 그 후에 완벽하게 작동합니다 (git pull 등)!
parasrish

9

호스트 이름에 .local을 추가하여 해결할 수있는 동일한 문제가 발생했습니다. ssh user@hostname.local


그것은 나를 위해 그것을했다. ping $(hostname)작동했지만해야합니다 ssh $(hostname).local. Mac은 일반적으로 훌륭합니다.. 그러나 그것이 짜증
나면

: 나는 더 문제가 hadoop할 필요를 ssh user@hostname내가 할 수 단순히 추가 .local수동. 나는 붙어있다
javadba

.localUbuntu 19.10에서 추가 했습니다.
prkos

5

내 경우에는이 같은 ssh를 시도했다

ssh pedro@192.168.2.179:22 

올바른 형식이 다음과 같은 경우 :

ssh pedro@192.168.2.179 -p 22 

1
와! 포트 포워딩에 영원히 갇혀 있었다! 이것은 거룩한 텍스트입니다.
frozenOne

4

명령이 다음과 같은 경우 :

$ ssh -p 1122  path/to/pemfile user@[hostip/hostname]

또한 같은 오류가 발생합니다

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known

-i /path/to/pemfilessh 옵션을 놓치면

따라서 명령은 다음과 같아야합니다.

$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]

나는 pemfile 옵션을 사용하지 않았지만 여전히 연결되어 있습니다ssh -p xxxx user@hostname
Yoku

4

원격 Amazon 서버에 연결해야했습니다

ssh -i ~/.ssh/test.pem -fN -L 5555:localhost:5678 ubuntu@hostname.com

다음과 같은 오류가 발생했습니다.

ssh: Could not resolve hostname <hostname.com>: nodename nor servname provided, or not known

Mac OSX 용 솔루션

호스트를 핑 (Ping)하면 문제가 해결되었습니다. Mac OSX Seirra를 사용하고 있습니다.

ping hostname.com

이제 문제가 해결되었습니다. 서버에 연결할 수 있습니다.

참고 : 이 솔루션 도 시도 했습니다 . 그러나 그것은 효과가 없었습니다. 그런 다음 ping문제를 해결했습니다.


3

나는 같은 문제가 있었다 : 환경 설정-> 공유-> 원격 로그인에 표시된 주소가 작동하지 않고 '... nodename 또는 servname이 제공되었거나 알려지지 않았습니다'. 그러나 환경 설정-> 공유-> 원격 로그인-> 편집에서 설정을 수동으로 편집하고 "동적 글로벌 호스트 이름 사용"을 활성화하면 갑자기 작동했습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


3

일부 응용 프로그램은 /etc/hosts(최소한 macOS에서) 심볼릭 링크를 읽지 못 하므로 하드 링크해야합니다.

ln /path/to/hosts_file /etc/hosts


2

이것은 Github에 액세스하려고 할 때 발생했습니다. 문제는 내가하는 습관에 있다는 것입니다.

git remote add <xyz> ssh:\\git@github.com......

그러나 질문에서이 오류가 발생하면 제거 ssh:\\하면 문제가 해결 될 수 있습니다. 나를 위해 그것을 해결했습니다!

당신이 할 필요가 않습니다 git remote remove <xyz>및없이 원격 URL을 다시 추가 ssh:\\.


1
당신이 ssh:\\아니라 실제로 사용 했습니까 ssh://?
Radon Rosborough

@RadonRosborough 이것은 얼마 전입니다 ... 그래서, 확실하지 않습니다. 이있을 수 있습니다! :)
Monkpit

1

나에게 문제는 내 ~/.ssh/config파일 의 오타였습니다 . 나는했다 :

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

문제는 :이후 였습니다 host1-거기에 있으면 안됩니다. 파일의 ssh오타에 대해서는 경고하지 않습니다 ~/.ssh/config. 찾을 수없는 host1경우 로컬에서 기계를 찾고, 찾을 수없고 암호 오류 메시지를 인쇄합니다.


0

허용 된 포트를 고려하여 시도하십시오. 예를 들어 .pem파일을 Documents폴더에 저장하십시오 .

액세스하려면 cd [directory]할당 된 파일의 디렉토리로 이동하면됩니다. 먼저을 입력 ls하여 현재있는 디렉토리 내용을 나열 할 수 있습니다 .

ls
cd /Documents
chmod 400 mycertificate.pem
ssh -i "mycertificate.pem" ec2-user@ec2-1-2-3-4.us-compass-0.compute.amazonaws.com -p 80

0

제대로 형식화되지 않은 .yml 인벤토리 파일을 사용 하여이 오류가 발생했습니다. 그룹에있는 여러 호스트의 경우 각 호스트 이름은 하드 콜론 ":"으로 끝나야합니다. 그렇지 않으면 ansible은 호스트 이름을 함께 실행하고이 ssh 오류를 생성합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.