Skip to main content

GitHub Copilot CLI 구성

신뢰할 수 있는 디렉터리, 도구 액세스, 경로 및 URL 권한 구성 코파일럿 CLI

소개

          코파일럿 CLI 에는 사용자를 대신하여 액세스하고 수행할 수 있는 작업을 제어하는 몇 가지 구성 옵션이 있습니다.

이 문서에서는 신뢰할 수 있는 디렉터리를 설정하고, 도구에 대한 액세스를 구성하고, 파일 경로 및 URL에 대한 권한을 부여하는 방법을 보여 줍니다.

필수 조건

  •         코파일럿 CLI를 설치합니다. 
            [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli)을(를) 참조하세요.
    

신뢰할 수 있는 디렉터리 설정

신뢰할 수 있는 디렉터리에서는 파일을 읽고 수정하고 실행할 수 있는 위치를 코파일럿 CLI 제어합니다. 디렉터리를 신뢰하는 것은 보안에 영향을 줍니다. 보안 고려 사항을 참조하세요.

디렉터리를 신뢰하도록 선택

          GitHub Copilot 명령 줄 인터페이스 (CLI) 세션을 시작할 때, CLI를 실행한 디렉터리와 그 하위에 있는 파일을 신뢰하는지 확인해야 합니다.

다음 중에서 디렉터리를 신뢰할 수 있는 방법을 선택할 수 있습니다.

  • 현재 실행 중인 세션에만 적용
  • 현재 및 향후 세션 모두에 적용

이후 세션에서도 해당 디렉터리를 신뢰하도록 선택하면 신뢰할 수 있는 디렉터리 프롬프트가 다시 표시되지 않습니다. 이 위치가 항상 안전한 작동 장소가 Copilot 될 것이라고 확신하는 경우에만 이 두 번째 옵션을 선택해야 합니다.

신뢰할 수 있는 디렉터리 편집

영구적으로 신뢰할 수 있는 디렉터리 목록을 편집할 수 있습니다.

  1. CLI의 config.json 파일을 엽니다. 기본적으로 홈 디렉터리 아래의 폴더에 .copilot 저장됩니다.

    •      **macOS/Linux**: `~/.copilot/config.json`
      
    •      **Windows**: `$HOME\.copilot\config.json`
      

환경 변수를 설정 COPILOT_HOME 하여 구성 위치를 변경할 수 있습니다.

  1. 배열의 trusted_folders 내용을 편집합니다.

허용되는 도구 설정

도구를 코파일럿 CLI 사용하려고 할 때 Copilot 승인 프롬프트에 응답하거나 명령줄 플래그를 통해 사용 권한을 지정하여 사용할 수 있는 도구를 제어할 수 있습니다.

도구 액세스를 허용하는 것은 보안에 영향을 줍니다. 보안 고려 사항을 참조하세요.

이 섹션에서는 다음 방법을 알아볼 수 있습니다.

  •         [도구를 처음으로 사용 허가](#allowing-a-tool-for-the-first-time)
    
  •         [수동 승인 없이 도구를 사용할 수 있도록 허용](#allowing-tools-to-be-used-without-manual-approval)
    
  •         [허용하거나 거부할 도구를 지정합니다.](#specifying-which-tool-you-want-to-allow-or-deny)
    
  •         [다른 도구를 거부하는 동안 일부 도구 허용](#allowing-some-tools-while-denying-others)
    
  •         [사용 가능한 도구 제한](#limiting-available-tools)
    

처음으로 도구 허용

처음으로 Copilot와 같은 승인이 필요할 수 있는 도구를 사용해야 할 때, 예를 들어 예: touch, chmod, node, sed를 실행할 수 있도록 허용할 것인지 묻는 메시지가 표시됩니다. 메시지가 표시되는지 여부는 도구 및 도구 사용 방법(예: 제공된 인수 또는 도구가 이전에 승인되었는지 여부)에 따라 달라질 수 있습니다.

  1.        Copilot 도구가 필요한 작업을 수행하도록 프롬프트합니다. 다음은 그 예입니다.
    
    copilot -p "Create a new file called README.md with a project description"
    
  2. 다음 세 가지 옵션 중 하나를 선택합니다.

    • 1. Yes

      이 특정 명령을 실행할 수 있도록 Copilot 허용하려면 이 옵션을 선택합니다. 이번에는 이 명령만 실행합니다. 다음에 이 도구를 사용해야 할 때 다시 묻게 됩니다.

    • 2. Yes, and approve TOOL for the rest of the running session

      현재 실행 중인 세션의 기간 동안 이 도구를 사용할 수 있도록 Copilot 하려면 이 옵션을 선택합니다. 새로운 세션에서 또는 나중에 현재 세션을 다시 시작할 경우에는 다시 승인을 요청합니다. 이 옵션을 선택하면 Copilot가 적절하다고 생각하는 방식으로 이 도구를 사용할 수 있도록 허용하게 됩니다.

      예를 들어 Copilot 명령을 rm ./this-file.txt실행할 수 있도록 허용하라는 메시지가 표시되고 옵션 2 Copilot 를 선택하면 승인을 요청하지 않고 이 세션의 현재 실행 중에 명령 rm (예 rm -rf ./*: )을 실행할 수 있습니다.

    • 3. No, and tell Copilot what to do differently (Esc)

      제안된 명령을 취소하고 다른 방법을 시도하도록 지시 Copilot 하려면 이 옵션을 선택합니다.

수동 승인 없이 도구를 사용할 수 있도록 허용

명령줄 플래그를 사용하여 승인을 요청하지 않고 사용할 수 있는 Copilot 도구를 지정할 수 있습니다.

모든 도구 허용

          `--allow-all-tools`을 사용하여 Copilot가 승인을 요청하지 않고 모든 도구를 사용할 수 있도록 허용합니다.
  • 다음은 그 예입니다.

    copilot -p "Revert the last commit" --allow-all-tools
    

도구 거부

          `--deny-tool`를 사용하여 Copilot가 특정 도구를 사용하지 못하도록 방지합니다.
  • 다음은 그 예입니다.

    copilot --deny-tool='shell(git push)'
    

이 옵션은 --allow-all-tools--allow-tool 옵션보다 우선 적용됩니다.

도구 허용

          Copilot가 특정 도구를 승인 요청 없이 사용할 수 있도록 허용하기 위해 `--allow-tool`를 사용합니다.
  • 다음은 그 예입니다.

    copilot --allow-tool='shell'
    

허용하거나 거부할 도구 지정

--deny-tool 옵션을 사용 --allow-tool 하려면 허용하거나 거부할 도구 유형을 지정해야 합니다.

  •         [셸 명령](#allowing-or-denying-shell-commands)
    
  •         ['쓰기' 도구](#allowing-or-denying-write-tools)
    
  •         [MCP 서버 도구](#allowing-or-denying-mcp-server-tools)
    

셸 명령 허용 또는 거부

특정 셸 명령을 허용하거나 거부하는 데 사용합니다 shell(COMMAND) .

  • 예를 들어, Copilot가 어떤 rm 명령도 사용하지 않도록 하려면 다음을 사용하십시오.

    copilot --deny-tool='shell(rm)'
    
            `git` 및 `gh` 명령에 대해 허용하거나 거부할 특정한 첫 번째 수준 하위 명령을 지정하십시오.
    
  • 예를 들어, Copilot가 git push을/를 사용하지 않도록 하려면 다음을 사용하십시오.

    copilot --deny-tool='shell(git push)'
    

도구 사양은 선택 사항입니다. 예를 들어 copilot --allow-tool='shell'은 Copilot이 개별 승인 없이 모든 셸 명령을 사용할 수 있게 합니다.

도구 허용 또는 거부 'write'

셸 명령 이외의 도구를 허용하거나 거부하여 파일을 수정할 수 있는 권한을 사용합니다 'write' .

  • 예를 들어 개별 승인 없이 파일을 편집할 수 있도록 Copilot 하려면 다음을 사용합니다.

    copilot --allow-tool='write'
    

MCP 서버 도구 허용 또는 거부

지정된 MCP 서버에서 특정 도구를 허용하거나 거부하는 데 사용합니다 'MCP_SERVER_NAME' .

  • 예를 들어, Copilot가 MCP 서버인 My-MCP-Server에서 도구 tool_name를 사용하지 않도록 하려면 다음을 사용합니다.

    copilot --deny-tool='My-MCP-Server(tool_name)'
    
            `MCP_SERVER_NAME` 은 구성한 MCP 서버의 이름입니다.
    

서버에서 제공하는 도구는 MCP 서버에 등록된 도구 이름을 사용하여 괄호로 지정됩니다.

도구를 지정하지 않고 서버 이름을 사용하면 해당 서버의 모든 도구를 허용하거나 거부할 수 있습니다.

대화형 모드 /mcp 로 들어가 코파일럿 CLI 서 표시되는 목록에서 서버를 선택하여 MCP 서버의 이름을 찾을 수 있습니다.

일부 도구를 허용하고 다른 도구를 거부하기

승인을 요청하지 않고 사용할 수 있는 도구를 Copilot 정확하게 확인하려면 승인 옵션 조합을 사용할 수 있습니다. 다음은 그 예입니다.

  •         Copilot가 `rm` 및 `git push` 명령을 사용하지 못하도록 하고, 다른 모든 도구를 자동으로 허용하려면 다음을 사용합니다.
    
    copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'
    
  • MCP Copilot서버에서 도구를 tool_name 사용하지 못하도록 하지만 My-MCP-Server 해당 서버의 다른 모든 도구를 개별 승인 없이 사용할 수 있도록 하려면 다음을 사용합니다.

    copilot --allow-tool='My-MCP-Server' --deny-tool='My-MCP-Server(tool_name)'
    

사용 가능한 도구 제한

특정 도구 집합으로 Copilot를 제한하려면 --available-tools를 사용합니다.

이 목록에 포함되지 않은 도구는 Copilot 사용자가 사용할 수 없습니다.

경로 권한 설정

경로 권한은 액세스할 수 있는 디렉터리 및 파일을 Copilot 제어합니다.

기본적으로 코파일럿 CLI 현재 작업 디렉터리, 해당 하위 디렉터리 및 시스템 임시 디렉터리에 액세스할 수 있습니다.

경로 권한은 셸 명령, 파일 작업(만들기, 편집, 보기) 및 검색 도구(예: grep glob 패턴)에 적용됩니다. 셸 명령의 경우 경로는 명령 텍스트를 토큰화하고 경로처럼 보이는 토큰을 식별하여 추론적으로 추출됩니다.

경고

셸 명령에 대한 경로 검색에는 다음과 같은 제한 사항이 있습니다.

  • 복잡한 셸 구문에 포함된 경로는 검색되지 않을 수 있습니다.
  • 특정 환경 변수 집합만 확장됩니다(HOME, TMPDIR, PWD및 유사). 같은 $MY_PROJECT_DIR 사용자 지정 변수는 확장되지 않으며 올바르게 유효성을 검사하지 못할 수 있습니다.
  • 기존 파일에 대해서는 심링크가 해결되지만, 생성되는 파일에 대해서는 해결되지 않습니다.

모든 경로에 대한 액세스 허용

경로 확인을 비활성화하고 모든 경로에 대한 액세스를 허용하려면 코파일럿 CLI을 시작할 때 --allow-all-paths 플래그를 사용합니다.

임시 디렉터리에 대한 액세스 허용 불허

임시 디렉터리에 대한 액세스를 허용하지 않도록 하려면 .를 사용합니다 --disallow-temp-dir.

URL 권한 설정

URL 권한은 Copilot이(가) 액세스할 수 있는 외부 URL을 제어합니다. 기본적으로 모든 URL은 액세스 권한을 부여하기 전에 승인이 필요합니다.

URL 권한은 도구 및 네트워크에 액세스하는 web_fetch 큐레이팅된 셸 명령 목록(예: curl, wgetfetch)에 적용됩니다. 셸 명령의 경우 URL은 regex 패턴을 사용하여 추출됩니다.

경고

셸 명령에 대한 URL 검색에는 다음과 같은 제한 사항이 있습니다.

  • 파일 콘텐츠, 구성 파일 또는 명령에서 읽은 환경 변수의 URL은 검색되지 않습니다.
  • 난독화된 URL(예: 분할 문자열 또는 이스케이프 시퀀스)은 감지되지 않을 수 있습니다.
  • HTTP 및 HTTPS는 서로 다른 프로토콜로 처리되며 별도의 승인이 필요합니다.

URL 사용 권한은 세션에 대해 또는 영구적으로 유지할 수 있습니다.

URL 확인 사용 안 않음

URL 확인을 사용하지 않도록 설정하려면 플래그를 --allow-all-urls 사용합니다.

특정 도메인 사전 승인

특정 도메인을 미리 승인하려면 .를 사용합니다 --allow-url=DOMAIN.

  • 예: --allow-url=github.com.

특정 도메인 거부

특정 도메인을 거부하려면 .를 사용합니다 --deny-url=DOMAIN.

  • 예: --deny-url=github.com.

모든 도구, 경로 및 URL 허용

모든 도구, 경로 및 URL을 허용하려면 --allow-all 또는 해당 별칭 --yolo을 사용합니다.

이 플래그는 다음을 결합합니다. * --allow-all-tools (도구 승인 건너뛰기). * --allow-all-paths (경로 확인을 사용하지 않도록 설정). * --allow-all-urls (URL 확인을 사용하지 않도록 설정).

대화형 세션 중에는 /allow-all 또는 /yolo 슬래시 명령을 사용하여 모든 권한을 활성화할 수도 있습니다.

추가 읽기

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference)