2014-02-19 2 views
6

ssh를 사용하여 사용자 정의 이미지에서 생성 된 VM에 로그인하는 데 문제가 있습니다.커스텀 이미지에서 생성 된 GCE 인스턴스로 SSH하는 방법은 무엇입니까?

나는 creating an image from an existing GCE instance에 대한 단계를 따른다.

이미지를 성공적으로 생성하고 Google Cloud Storage에 업로드하여 이미지로 프로젝트에 추가했지만 새로운 이미지에 연결하려고하면 "Connection Refused"가 표시됩니다.

새 이미지에 대해 다른 포트에서 실행중인 다른 응용 프로그램을 볼 수 있으므로 영향을받는 ssh 일뿐입니다. 내가 한

단계는 다음과 같습니다 : 내가 그렇게 대답 다른에서 제안으로 sshKeys 메타 데이터를 삭제하려고했습니다

INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/mark1/.ssh/google_compute_engine -A -p 22 [email protected] -- 
ssh: connect to host 23.251.133.2 port 22: Connection refused 

하고 이런 짓을 다시 연결 :

...create an image from existing GCE instance (one I can log into fine via ssh)..then: 

gcutil --project="river-ex-217" addimage example2 http://storage.googleapis.com/example-image/f41aca6887c339afb0.image.tar.gz 
gcutil --project="river-ex-217" addinstance --image=example2 --machinetype=n1-standard-1 anothervm 
gcutil --service_version="v1" --project="river-ex-217" ssh --zone="europe-west1-a" "anothervm" 

출력 어느

INFO: Updated project with new ssh key. It can take several minutes for the instance to pick up the key. 
INFO: Waiting 120 seconds before attempting to connect. 
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /Users/mark1/.ssh/google_compute_engine -A -p 22 [email protected] -- 
ssh: connect to host 23.251.133.2 port 22: Connection refused 

다음 다른 영역에서 첫 번째 인스턴스를 시도해 봅니다. 새 키로 올바르게 작동합니다.

gcutil --service_version="v1" --project="river-ex-217" ssh --zone="europe-west1-b" "image1" 

두 인스턴스는 포트 22가 실행되는 동일한 "기본"네트워크에서 실행되며 ssh는 이미지가 만들어진 첫 번째 인스턴스에서 작동합니다. 이 출력

nc 23.251.133.2 22 

... 원래 VM의 IP 동안 보여줍니다 :

nc 192.157.29.255 22 
SSH-2.0-OpenSSH_6.0p1 Debian-4 

나 '를 내가 다른 인스턴스와 내 로컬 컴퓨터에서 명령을 NC 시도

, 그것은 어떤 출력을 보여줍니다 이미지를 다시 작성하고 인스턴스를 다시 추가해 보았습니다. 차이는 없습니다.

첫 번째 인스턴스에 로그인하여 두 번째 컴퓨터와 동일한 사용자 여야합니다 (두 번째 시스템과 동일해야합니다). 그리고 거기에서 ssh를 시도했습니다. 나는 아이디어 나갈거야

WARNING: You don't have an ssh key for Google Compute Engine. Creating one now... 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
INFO: Updated project with new ssh key. It can take several minutes for the instance to pick up the key. 
INFO: Waiting 300 seconds before attempting to connect. 
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/mark/.ssh/google_compute_engine -A -p 22 [email protected] -- --zone=europe-west1-a 
ssh: connect to host 23.251.133.2 port 22: Connection refused 

는, 어떤 도움이 크게 난 그냥 여기에 몇 개의 파일을 추가해야 진노 그랬다고 생각 나는 새로운 VM 준비 응용 프로그램와 연결되어 볼 수 있습니다 : 감사 및 설정 일부 cronjobs. 나는이 사전 이미지 제작을 할 수 있다고 생각하지만, 이미지를 만들고 매번 새로운 인스턴스를 시작하기 위해 1 시간이 걸리지 않고 나중에 로그인하여 수정할 수 있기를 원합니다.

당신의 충실, 마크

+0

같은 문제가 있습니다. –

+0

Google 그룹에도 게시했습니다. Google 관리자가 "gcutil getserialportoutput <인스턴스 이름>"의 출력을 사용하여이를 추적합니다. – Mark

+0

내 영구 디스크를 삭제하고 다시 시작합니다./운 좋게 우리는 꽤 좋은 create_dev_env 스크립트를 가지고 있습니다. 그렇지 않으면 정말로 옵션이 아닙니다. –

답변

4

이 질문은 이미지 SSH 연결 문제를 디버깅하는 방법에 대한 것으로 보인다, 그래서 여기에 내 대답이다.

인스턴스가 SSH 서버를 제대로 실행하지 못하는 것으로 보입니다. 준비된 이미지에 어긋나는 것이있을 수 있습니다.

아마도 유용한 디버깅 질문을 스스로에게 물어 :

  • 당신은 이미지를 번들로 gcimagebundle를 사용 했 또는 수동으로 했습니까? 이 도구를 사용하여 누락 된 부분이 없는지 확인하십시오.
  • 이미지를 번들하기 전에 ssh 서버 구성에 대해 변경 한 사항이 있습니까?
  • 인스턴스가 부팅 될 때 ssh 메시지의 콘솔 출력을 확인하십시오. 키를 재생성하고 sshd 데몬을 시작하고 포트 22에서 수신 대기를 언급해야합니다. ssh 관련 무언가가 없거나 불만 사항이 있으면 계속 수행해야합니다 그.

당신은이 덮여 있지만, 완벽을 위해,이 또한 확인해야합니다 : 그것은 온다 후

  • 당신은 그렇지 않으면 VM에 도달 할 수 있습니까? 웹 서버 포트 (있는 경우)에 응답하거나 핑에 응답합니까?
  • VM이 연결된 네트워크가 연결되어있는 호스트에서 SSH (포트 22) 액세스를 허용하는지 다시 확인하십시오.

당신은 작업 이미지의에 SSH 설정을 비교할 수 있습니다

  • 이 이미지에서 새 디스크 (디스크 내-1)를 만듭니다.
  • 작업중인 모든 부팅 이미지 (예 : debian wheezy)에서 새 디스크 (disk-upstream-1)를 만듭니다.
  • 콘솔이나 cli에서 액세스 할 수있는 VM에이 두 가지를 모두 첨부하십시오.
  • VM에 SSH가 있습니다.
  • 마운트 이미지 모두 (sudo는 MKDIR/MNT/{광산 상류} & & sudo는은/디바이스/sdb1로/MNT/마운트 내 & & sudo를 탑재/디바이스/sdc1로/MNT/상류). 이미지가 sdb 또는 sdc인지 여부는 이미지를 첨부 한 순서에 따라 다릅니다.
  • ssh 구성 (diff -waur/mnt/{mine, 업스트림}/etc/ssh)의 차이점을 찾으십시오. 특별히 필요한 경우가 아니면 아무 것도 없어야합니다.
  • 또한 이미지에 적절한 /mnt/mine/etc/init.d/{ssh,generate-ssh-hostkeys 스크립트가 있는지 확인하십시오. 또한 /mnt/mine/etc/rc{S,2}.d (S10generate-ssh-hostkeys 및 S02ssh 각각)에서 링크되어야합니다.
관련 문제