SSH 구성은 gcloud cli 명령어를 사용하여 Google 클라우드 컴퓨팅 인스턴스와의 세션을 시작합니다.

SSH 구성은 gcloud cli 명령어를 사용하여 Google 클라우드 컴퓨팅 인스턴스와의 세션을 시작합니다.

gcloudGoogle Cloud cli()를 사용하여 Google 컴퓨팅 인스턴스에 연결하기 위해 내 SSH 구성을 사용하고 싶습니다 . (이것은 작동하는 솔루션이 있지만 내 문제의 이 부분을 해결하지 못한 다른 질문에 대한 후속 질문입니다.)

필요한 기능은 ssh <instance-name>.gcgcloud 인스턴스에 연결하는 것입니다.

gcloud 인스턴스에 연결하려면 다음을 실행하세요.

/home/me/google-cloud-sdk/bin/gcloud compute --project "myproject" ssh --zone "myzone" me@<instance-name>

그래서 .ssh/config에 항목을 추가했습니다.

Host *.gc
    ProxyCommand /home/me/google-cloud-sdk/bin/gcloud compute --project "myproject" ssh --zone "myzone" me@$(basename %h .gc)

그런 다음 실행하여 ssh <instance-name>.gc다음을 얻습니다.

# ssh <instance-name>.gc
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: $'SSH-2.0-OpenSSH_8.0\r': command not found

연결이 된 것 같았는데 입력하라는 메시지가 나오지 않아서 Ctrl-C를 눌러 종료했습니다.

비슷한 동작을 달성하기 위해 별칭을 만들 수 있지만 SSH 구성의 다른 항목과 함께 이를 점프 상자로 사용할 수 있도록 하고 싶습니다.


디버그

어쩌면 내가 그것을 잘못 사용하고 있을 수도 있습니다. 구성 파일에서 명령을 바꾸면 ProxyCommand동일한 동작이 나타납니다. 그렇다면 목표를 달성하는 데 도움이 되는 대체 구성이 있습니까?gcloudssh me@<instace-ip>

gcloudssh뒤에서 사용하면 변경 없이 의사 터미널 할당을 강제하기 위해 --를 추가해 보았습니다 .-- -t

답변1

나는 작동하는 몇 가지 구문을 생각해 냈습니다. 아마도 정리할 수 있지만 작동합니다.

Host *.gc
    User me
    ProxyCommand gcloud compute --project "myproject" ssh --zone "myzone" me@$(basename %h .gc) --command="nc 0.0.0.0 22"

관련 정보