2014-12-18 6 views
1

EC2 인스턴스를 시작한 다음 일부 인스턴스를 실행 한 다음 닫는 작업을 자동화하려고합니다. 한 가지 문제를 제외하고는 모든 것이 잘 작동합니다.EC2 인스턴스 RSA 지문 검색

내 EC2 인스턴스에 SSH를 사용할 수 없습니다. 방금 생성 한 EC2로 SSH하려면, 사용할 수없는 특정 인스턴스의 RSA 지문이 필요합니다. 이제 aws cli를 사용하여 로그를 추출 할 수 있지만 추출 된 파일에 줄 바꿈 문자가 없으므로 로그를 추출하는 것은 매우 복잡합니다. 로그인하지 않고 EC2 인스턴스의 지문이 무엇인지 알 수있는 직접 명령이 있습니까? Windows를 사용하는 가정 명령을

"open sftp://[email protected]%varPublicIp% -timeout=120 -privatekey="D:\subham_ec2key\privateKey-us-west-1.ppk" -hostkey="<RSA FINGERPRINT>"" 

답변

0

다음 코드 스 니펫이 문제를 해결합니다. 코드 스 니펫은 배치 스크립트 용입니다.

aws ec2 get-console-output --output table --instance-id "i-256789"> InstanceId.txt 
findstr "(RSA)" varInstanceId.txt>RSAFingerprint.txt 
for /f "tokens=3 delims= " %%G in (RSAFingerprint.txt) do @echo %%G>RSAFingerprint.txt 
for /f "delims=" %%G in (RSAFingerprint.txt) do set varRSAFingerprint=%%G 
echo varRSAFingerprint: %varRSAFingerprint% 

지금 라인으로 EC2 인스턴스에 대한 시스템 로그를 제공합니다

aws ec2 get-console-output --output table --instance-id "i-256789"> InstanceId.txt 

EC2 콘솔 출력을 위의 코드 라인을 이해할 수 있습니다. table 형식으로 출력하는 것이 매우 중요합니다. 그렇지 않으면 json 출력이 파일에 CRLF를 제공하지 않아 RSA 지문을 추출 할 수 없습니다.

findstr "(RSA)" varInstanceId.txt>RSAFingerprint.txt 

그것이 키워드를 포함하는 전체 라인을 반환하고 RSAFingerprint.txt에 넣어 것 파일에 대한 (RSA) 키워드를 찾을 때, 생성 된 시스템 로그 파일에서 (RSA) 키워드를 찾는.

for /f "tokens=3 delims= " %%G in (RSAFingerprint.txt) do @echo %%G>RSAFingerprint.txt 

위의 회선은 이전에 추출 된 회선에서만 지문을 추출합니다.

for /f "delims=" %%G in (RSAFingerprint.txt) do set varRSAFingerprint=%%G 

위의 행은 변수 varRSAFingerprint에 지문을 넣습니다.

0

을 따라 내가 시스템에 로그인 할 수 WinSCP를 사용하고

는 지문을 보여줄 것이다, 따라 PuTTYgen로 키를로드합니다.