소개

이 랩에서는 Linux ssh 명령어를 사용하여 다른 Linux 시스템에 원격으로 연결하고 관리하는 방법을 배우게 됩니다. SSH (Secure Shell) 는 시스템 관리자와 네트워크 엔지니어를 위한 강력한 도구로, 원격으로 안전하게 광범위한 작업을 수행할 수 있게 해줍니다.

성과

이 랩을 마치면 다음을 수행할 수 있습니다.

  • ssh 명령어를 사용하여 원격 시스템에 안전하게 연결
  • SSH 를 사용하여 원격 시스템에서 명령 실행
  • 원격 시스템 관리의 기본 사항 이해

labex 사용자 비밀번호 검색

SSH 를 사용하기 전에, labex 사용자의 비밀번호를 알아야 합니다. 이 랩 환경에서는 비밀번호가 환경 변수로 저장되어 있습니다.

  1. 데스크톱 환경에서 터미널 창을 엽니다. 데스크톱 환경 터미널만 환경 변수가 설정되어 있습니다.

Retrieve Password

  1. 비밀번호를 검색하려면 다음 명령을 실행합니다.

    printenv | grep PASSWORD
    

    참고: 이 명령은 상단 메뉴 바에서 연 터미널이 아닌, 데스크톱 환경 터미널에서 실행해야 합니다.

    이 명령은 "PASSWORD"를 포함하는 모든 환경 변수를 표시합니다. LABEX_PASSWORD=...라는 줄을 찾으십시오. 등호 뒤의 문자가 비밀번호입니다.

  2. 이 비밀번호를 기록해 두십시오. 다음 단계에서 필요합니다.

중요: labex 사용자 비밀번호를 변경하지 마십시오. 랩 환경은 이 특정 비밀번호로 설정되어 있으며, 변경하면 랩 검증 단계가 실패할 수 있습니다. 이 랩 전체에서 LABEX_PASSWORD 환경 변수가 제공하는 비밀번호를 항상 사용하십시오.

SSH 를 사용하여 로컬 시스템에 연결

이제 비밀번호를 얻었으니, SSH 를 사용하여 로컬 시스템에 연결하는 연습을 해보겠습니다. 이는 원격 시스템에 연결하는 것을 시뮬레이션합니다.

SSH connection terminal example

  1. 터미널에서 다음 명령을 사용하여 SSH 를 통해 로컬 시스템에 연결합니다.

    ssh labex@127.0.0.1
    

    여기서 127.0.0.1은 로컬 머신을 가리키는 루프백 IP 주소입니다. 종종 "localhost"라고 불립니다.

  2. 호스트의 진위 여부에 대한 메시지가 표시될 수 있습니다. 이 메시지는 이 "원격" 시스템에 처음 연결하기 때문에 나타납니다. 실제 시나리오에서는 진행하기 전에 지문을 확인해야 합니다. 이 랩에서는 yes를 입력하고 Enter 키를 눌러 계속 진행합니다.

  3. 비밀번호를 묻는 메시지가 표시되면, 1 단계에서 검색한 비밀번호를 입력합니다. 입력하는 동안 비밀번호가 표시되지 않습니다.

  4. 성공하면 새로운 프롬프트가 표시됩니다. 이는 동일한 머신에 있더라도 SSH 를 통해 연결되었음을 나타냅니다.

  5. SSH 세션을 종료하려면 exit를 입력하고 Enter 키를 누릅니다. 그러면 원래 터미널 세션으로 돌아갑니다.

SSH 를 사용하여 간단한 명령어 실행

SSH 를 사용하여 "원격" 시스템에서 명령을 실행하는 연습을 해보겠습니다. 이는 전체 SSH 세션을 시작하지 않고도 빠른 명령을 실행해야 할 때 유용합니다.

  1. 다음 명령을 사용하여 SSH 를 통해 로컬 시스템의 홈 디렉토리 내용을 나열합니다.

    ssh labex@127.0.0.1 'ls -l ~'
    

    이 명령은 다음과 같이 분석됩니다.

    • ssh: SSH 연결을 시작하는 명령
    • labex@127.0.0.1: 연결할 사용자 및 IP 주소
    • 'ls -l ~': 원격 시스템에서 실행하려는 명령 (따옴표로 묶임)
  2. 메시지가 표시되면 labex 사용자 비밀번호를 입력합니다.

  3. ls -l ~ 명령의 출력을 볼 수 있으며, 홈 디렉토리의 내용이 표시됩니다. 이 출력은 실제로 동일한 머신임에도 불구하고 "원격" 시스템에서 제공됩니다.

  4. 이번에는 전체 SSH 세션에 들어가지 않았음을 확인하십시오. 명령이 실행되었고, 즉시 원래 터미널로 돌아왔습니다.

Pseudo-Terminal 할당과 함께 SSH 사용

일부 명령은 적절한 실행을 위해 pseudo-terminal 이 필요하며, 특히 대화형 명령이나 형식이 지정된 출력을 생성하는 명령에 필요합니다. SSH 에서 -t 옵션을 사용하여 pseudo-terminal 할당을 강제하는 연습을 해보겠습니다.

  1. 다음 명령을 실행하여 시스템의 가동 시간을 확인합니다.

    ssh -t labex@127.0.0.1 'uptime'
    

    -t 옵션은 SSH 가 pseudo-terminal 을 할당하도록 강제합니다. 이는 대화형 환경에서 실행될 것으로 예상되는 명령에 필요할 수 있습니다.

  2. 메시지가 표시되면 labex 사용자 비밀번호를 입력합니다.

  3. 시스템이 얼마나 오랫동안 실행되었는지와 부하 평균 정보를 보여주는 출력을 볼 수 있습니다.

  4. 이제 대화형 명령을 시도해 보겠습니다. 다음을 실행합니다.

    ssh -t labex@127.0.0.1 'top -n 1'
    

    이것은 top 명령을 실행합니다. 이 명령은 일반적으로 시스템 프로세스의 대화형 보기를 제공하지만, 여기서는 한 번의 반복 후에 종료하기 위해 -n 1 옵션을 사용합니다.

  5. 다시, 메시지가 표시되면 labex 사용자 비밀번호를 입력합니다.

  6. 시스템에서 실행 중인 상위 프로세스를 보여주는 형식이 지정된 출력을 볼 수 있습니다.

원격 파일 생성 및 접근

"원격" 시스템에서 파일을 생성하고 접근하는 연습을 해보겠습니다. 이는 SSH 를 사용하여 원격 시스템에서 파일을 조작하는 방법을 보여줍니다.

  1. SSH 를 사용하여 원격 시스템의 홈 디렉토리에 remote_test.txt라는 파일을 생성합니다.

    ssh labex@127.0.0.1 'echo "This is a test file created remotely" > ~/remote_test.txt'
    

    이 명령은 SSH 를 사용하여 원격 시스템에서 echo 명령을 실행하며, 이 명령은 텍스트를 새 파일로 출력합니다.

  2. 이제 방금 생성한 파일의 내용을 확인해 보겠습니다.

    ssh labex@127.0.0.1 'cat ~/remote_test.txt'
    

    cat 명령은 파일의 내용을 표시하는 데 사용됩니다.

  3. 터미널에 "This is a test file created remotely" 메시지가 표시되어야 합니다.

  4. 파일을 나열하여 파일의 존재를 확인해 보겠습니다.

    ssh labex@127.0.0.1 'ls -l ~/remote_test.txt'
    

    이렇게 하면 권한, 크기 및 생성 날짜를 포함한 파일 세부 정보가 표시됩니다.

요약

이 랩에서는 ssh 명령을 사용하여 Linux 시스템에 원격으로 연결하고 관리하는 방법을 배웠습니다. 환경 변수에서 사용자 비밀번호를 검색하고, SSH 를 통해 로컬 시스템에 연결 (원격 연결 시뮬레이션), 원격으로 명령을 실행하고, pseudo-terminal 할당과 함께 SSH 를 사용하고, "원격" 시스템에서 파일을 생성하고 접근하는 연습을 했습니다.

이러한 기술은 시스템 관리자 및 Linux 시스템을 원격으로 관리해야 하는 모든 사람에게 기본적인 것입니다. 연습을 위해 로컬 시스템을 사용했지만, 이러한 동일한 명령과 기술을 사용하여 네트워크 또는 인터넷을 통해 진정한 원격 시스템에 연결하고 관리할 수 있습니다.

원격 시스템으로 작업할 때는 항상 보안을 우선시하십시오. 강력한 비밀번호를 사용하고, 시스템을 최신 상태로 유지하며, 프로덕션 환경에서는 키 기반 인증과 같은 추가 보안 조치를 고려하십시오.

시스템 관리 여정을 계속 진행하면서 SSH 가 원격 관리 및 문제 해결에 필수적인 도구임을 알게 될 것입니다.