CentOS 8을 실행하는 GCE 가상 머신에서 scp 명령을 사용할 가능성을 완화하는 방법을 찾고 있습니다.
현재 설정은 배스천 VM이 보조 VM(인스턴스 1)에 SSH로 연결할 수 있도록 하는 것입니다. 첫 번째 SSH 연결을 설정한 후 보조 VM에서 배스천 VM으로 SSH를 다시 연결할 수 없습니다. 이는 반대 방향에 SSH 키 쌍이 없기 때문이라고 가정합니다(틀린 경우 수정해 주세요). 런타임 오류 ssh <BASTION_IP>
는Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
인스턴스 1에서 요새로 SCP를 시도하고 있지만 그것도 작동하지 않습니다. 오류는 입니다 Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
. SSH 키 쌍이 존재하지 않기 때문입니까?
이 문제를 해결할 방법이 있나요? 인스턴스 1에서 요새로 SCP 명령을 실행하는 데 사용할 수 있는 잠재적인 방법을 확인하고 싶습니다. 어떤 형태의 TCP 전달이나 다른 SSH 터널 설정을 통해 파일을 외부로 전송할 수 있습니까?
자세한 내용을 편집했습니다.
인스턴스-1에는 프라이빗 IP가 하나만 있습니다. 두 VM 모두 네트워크 간 VPC 피어링을 사용하는 두 개의 별도 GCP 프로젝트에 있습니다.
인스턴스 1의 외부 인터넷 액세스를 허용하는 NAT 게이트웨이나 기타 프록시는 없습니다.
Bastion에는 인스턴스 1의 개인 키의 공개 키가 없습니다.
다른 질문을 수정하세요.
요새가 인스턴스 1에 대한 SSH 터널을 설정하면 인스턴스 1에 있을 수 있고 어떻게든 인스턴스 1에서 요새로 파일을 가져올 수 있습니까?
요새의 인스턴스 1에 대한 SSH 키 쌍에 공개 키가 없으면 SCP가 작동하지 않습니까?
답변1
sftp 명령을 사용하는 것이 좋습니다. 먼저 일반 SSH를 통해 Bastion 서버에 연결합니다. Bastion 서버에서 SFTP 세션 시작
$ sftp -i /PATH/TO/SSH/KEY user@remote-vm-ip
일단 들어가면 cd
명령을 사용하여 파일 시스템 주위를 이동할 수 있습니다( cd
원격의 경우, lcd
로컬의 경우) 명령을 사용하여 ls
파일 나열( ls
원격의 경우, lcd
로컬의 경우) 파일을 다운로드하려면 get
명령을 사용하십시오( get file.txt
예를 들어) 파일을 업로드하려면 명령 사용 put
( put file.txt
예:)
한 컴퓨터에서 다른 컴퓨터로 액세스할 수 있고 파일 시스템에서 소스 파일의 위치를 알고 있는 경우 sftp
또는 명령을 사용하여 프로세스를 자동화할 수도 있습니다 .scp
인용하다:
https://www.ibm.com/support/pages/using-sftp-script-rsa-authentication
https://docs.oracle.com/cd/E36784_01/html/E36870/sftp-1.html