Skip to main content

GitHub Copilot CLI 구성

부조종사 CLI의 신뢰할 수 있는 디렉터리, 도구 접근, 경로 및 URL 권한을 구성합니다.

소개

부조종사 CLI에는 사용자를 대신하여 접근하고 수행할 수 있는 작업을 제어하는 여러 구성 옵션이 있습니다.

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

필수 조건

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

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

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

GitHub Copilot 명령 줄 인터페이스 (CLI) 세션을 시작하면 CLI를 실행한 디렉터리의 파일과 그 하위 디렉터리의 파일을 신뢰하는지 확인하라는 메시지가 표시됩니다.

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

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

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

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

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

  1. CLI의 config.json 파일을 엽니다. 기본적으로 홈 디렉터리 아래의 폴더에 .copilot 저장됩니다. * macOS/Linux: ~/.copilot/config.json * Windows: $HOME\.copilot\config.json

환경 변수(주로 macOS/Linux)를 설정 XDG_CONFIG_HOME 하여 구성 위치를 변경할 수 있습니다.

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

허용되는 도구 설정

Copilot가 도구를 사용하려고 시도할 때 승인 프롬프트에 응답하거나, 명령줄 플래그로 권한을 지정하여 부조종사 CLI가 사용할 수 있는 도구를 제어할 수 있습니다.

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

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

  •         [도구를 처음으로 사용 허가](#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 옵션보다 우선 적용됩니다.

도구 허용

          `--allow-tool`을 사용하여 Copilot가 사용자 승인 없이 특정 도구를 사용하도록 허용합니다.
  • 다음은 그 예입니다.

    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가 tool_name MCP 서버의 My-MCP-Server 도구를 사용하지 못하도록 하려면 다음을 사용합니다.

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

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

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

부조종사 CLI의 대화형 모드에서 /mcp를 입력하고 표시되는 목록에서 서버를 선택하면 MCP 서버 이름을 찾을 수 있습니다.

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

사용자에게 승인을 요청하지 않고 Copilot에서 사용할 수 있는 도구를 명확히 하려면 다양한 승인 옵션을 결합하여 사용할 수 있습니다. 다음은 그 예입니다.

  • Copilot가 rmgit push 명령을 사용하지 못하도록 하고, 다른 모든 도구는 자동으로 허용하려면 다음을 사용합니다.

    copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)'
    
  • Copilot이 tool_name라는 MCP 서버의 도구 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)