소개

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

성과

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

  • ssh 명령어를 사용하여 원격 시스템에 안전하게 연결
  • SSH 를 사용하여 원격 시스템에서 명령 실행
  • 원격 시스템 관리의 기본 사항 이해
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 72%입니다.학습자들로부터 96%의 긍정적인 리뷰율을 받았습니다.

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 가 원격 관리 및 문제 해결에 필수적인 도구임을 알게 될 것입니다.