gcloud
Google Cloud cli()를 사용하여 Google 컴퓨팅 인스턴스에 연결하기 위해 내 SSH 구성을 사용하고 싶습니다 . (이것은 작동하는 솔루션이 있지만 내 문제의 이 부분을 해결하지 못한 다른 질문에 대한 후속 질문입니다.)
필요한 기능은 ssh <instance-name>.gc
gcloud 인스턴스에 연결하는 것입니다.
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
동일한 동작이 나타납니다. 그렇다면 목표를 달성하는 데 도움이 되는 대체 구성이 있습니까?gcloud
ssh me@<instace-ip>
gcloud
ssh
뒤에서 사용하면 변경 없이 의사 터미널 할당을 강제하기 위해 --
를 추가해 보았습니다 .-- -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"