문제 발생

- 깃풀(git pull)을 실행한 후, 로컬 서버 디렉토리에서 빌드하여 .war 파일을 생성하였고 .war 파일을 Tomcat 웹앱 디렉토리로 복사하려는데 다음과 같은 문제가 발생했습니다.

- SSH 키의 passphrase를 입력했지만 비밀번호가 일치하지 않는지 인증을 거부했다는 경고만 떴습니다.

* 패스프레이즈(passphrase)**는 개인 SSH 키를 생성할 때 설정한 비밀번호


해결방법

1. 경로 확인

먼저 /tmp/private_key.pem 경로에 실제로 파일이 존재하는지 확인해야 합니다.

경로가 올바른지, 그리고 해당 파일이 존재하는지 확인해보았지만 경로도 일치했고 파일도 존재했습니다.


2. 새로운 SSH 키 생성

여러 시도를 해봤지만 실패를 거듭하며 ssh키를 새롭게 생성하기로 결정했습니다.

ssh-keygen -t rsa -b 2048 -f ~/.ssh/키파일_이름

 

  • -t rsa : RSA 알고리즘을 사용하여 키를 생성합니다.
  • -b 2048 : 2048비트 길이의 키를 생성합니다.
  • -f ~/.ssh/키파일_이름 : 키 파일의 저장 경로와 파일명을 지정합니다.

 


패스프레이스 입력
ssh 키를 생성하면 passphrase를 입력하라고 하는데 설정하지 않으려면 비워 두고 Enter를 누르시면 됩니다.
저는 보안을 위해서 입력을 하고 메모장에 잘 적어두었습니다.
참고로 5자리 이상을 입력하셔야 됩니다. 

 

키를 새롭게 생성하면 키 지문(Fingerprint)랜덤 아트(Randomart) 이미지가 나타납니다.


3. 새롭게 생성된 공개 키 확인하기

cat ~/.ssh/키파일_이름.pub

명령어를 입력하면 아래와 같이 나올 텐데 전부 복사해 주세요.

ex ) ssh-rsa EAdoWKEFJO@#$NMASM ... ec2-user@아이피주소.AWS 리전.프라이빗 도메인


4. 기존 .pem 파일로 EC2 인스턴스에 로그인(이미 접속해 계시다면 다음 순서로 넘어가주세요)

먼저 기존의 .pem 파일을 사용하여 EC2 인스턴스에 로그인합니다.

ssh -i /path/to/your/origin_SSH_Key_file_name.pem ec2-user@your_ip_address

5. 새로 발급받은 SSH 공개 키를 EC2에 추가

EC2 인스턴스에 로그인한 후, 새로 생성한 SSH 키의 공개 키를 ~/.ssh/authorized_keys 파일에 추가해야 합니다.

   1. 공개 키를 EC2 인스턴스에 추가

echo "아까 복사한 공개키 붙여넣기" >> ~/.ssh/authorized_keys

 

  2. 파일 권한 수정: 보안을 위해 authorized_keys 파일의 권한을 600으로 설정합니다.

chmod 600 ~/.ssh/authorized_keys

6. 새 SSH 키로 로그인 테스트

ssh -i ~/.ssh/ssh_key_file_name username@your_ip_address

 접속 시 패스프레이즈를 입력하라는 메시지가 나오면 생성할 때 설정한 패스프레이즈를 입력해주세요.

로그인이 잘 되는걸 확인할 수 있습니다.


7. .war 파일을 EC2 인스턴스로 전송할 때 새 SSH 키 사용하기

새 SSH 키로 EC2 인스턴스에 접속한 후, scp 명령어를 사용하니 파일을 EC2 인스턴스로 전송할 수 있었습니다.

scp -i /path/to/your/ssh/key /home/username/your-repository/build/libs/*SNAPSHOT.war username@your-ip-address:/home/username/apache-tomcat-10.1.31/webapps/

8. 전송된 파일 확인

전송이 완료되면 EC2 인스턴스에서 webapps 디렉토리로 이동하여 파일이 제대로 전송되었는지 확인할 수 있습니다

cd /home/username/apache-tomcat-10.1.31/webapps/
ls

 

+ Recent posts