[공지] SMS114.CO.KR 바로가기
www.sms114.co.kr
👉 텔레그램 상담 바로가기

1 분 소요

.bashrc 수정 후 ec2 인스턴스에 접속이 안될 때 해결 방법

Amazon EC2 인스턴스에서

.bashrc 에 alias 몇 개 추가하고 편의를 도모하다가, 특수문자를 잘 못 사용하는 바람에 ec2 접속조차 안된다.

이럴때 어떻게 해야 할까?

.

이때는 .bashrc 및 .bash__profile 을 우회해서 접속해야 한다.

  1. keypair가 저장된 local 폴더에서 git bash 창을 띄운다.

image-20250110115604617

  1. 아래와 같이, .bashrc 나 .bash_profile 의 실행을 무시하는 옵션으로 우회 접속 한다.
SAMSUNG@DESKTOP-innolifes MINGW64 /c/Utils/AWS-Keypair
$ ssh -i "my-keypair.pem" -t ec2-user@43.200.153.xxx bash --noprofile --norc
--> 의미 : 사용자 설정을 무시한 클린한 환경에서 bash 실행.

SSH 명령어의 -t 옵션터미널 할당을 의미해. 원격 서버에 접속할 때, 터미널 세션을 강제로 할당하여 명령어를 실행하거나 대화형 프로그램(예: bash, top, htop)을 실행할 수 있도록 해줘.


-t 옵션의 의미와 기능

1️⃣ 터미널 강제 할당

  • 기본적으로 SSH는 명령 실행만을 위해 사용되며 터미널 세션이 필요하지 않은 경우도 있어.
  • 하지만 -t 옵션을 사용하면, 터미널 세션을 강제로 생성하여 대화형 작업을 가능하게 해.

2️⃣ 터미널 세션이 필요한 상황

다음과 같은 경우에 유용:

  • 원격 서버에서 대화형 쉘 실행 (bash, sh, zsh 등).
  • 대화형 프로그램 실행 (top, htop, vim, nano 등).
  • sudo 명령 실행 시, 암호 입력이 필요한 경우.

-t 옵션이 사용된 명령의 동작

예시:

bash


코드 복사
ssh -t user@host bash

동작:

  1. 터미널 세션 강제 생성

    :

    • 원격 서버에서 bash이 실행되도록 터미널을 생성.
  2. 대화형 작업 가능

    :

    • 쉘 환경에서 명령을 자유롭게 입력 가능.

-t bash의 추가 옵션과 조합

1️⃣ -t와 특정 쉘

  • bash 또는 다른 쉘을 명시적으로 실행할 때 사용:

    bash
      
      
    코드 복사
    ssh -t user@host bash
    
  • 기본 쉘이 아닌 특정 쉘을 실행할 때:

    bash
      
      
    코드 복사
    ssh -t user@host zsh
    

2️⃣ --noprofile --norc와 함께 사용

  • .bashrc.bash_profile의 실행을 무시하고 기본 bash 환경을 열 때:

    bash
      
      
    코드 복사
    ssh -t user@host bash --noprofile --norc
    
  • 의미: 사용자 설정을 무시한 클린한 환경에서 bash 실행.


기타.

-t 옵션이 없는 경우

동작 차이:

  • 대화형 프로그램 실행이 불가능할 수 있음.

  • 예를 들어, 아래 명령은

    -t
    

    가 없어서 대화형 작업이 제한될 가능성이 있음:

    bash
      
      
    코드 복사
    ssh user@host bash
    

-t의 주의점

  • 여러 SSH를 중첩 연결하거나, 비대화형 명령을 실행할 때는 필요하지 않음.
  • 필요하지 않은 경우 -t 옵션을 사용하면 터미널 할당으로 인해 불필요한 리소스가 소비될 수 있음.

댓글남기기