Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ 사용자 인증

Junos PyEZ 애플리케이션은 암호 또는 기타 표준 SSH 인증 메커니즘을 사용하여 사용자를 인증할 수 있습니다.

Junos PyEZ 사용자 인증 개요

Junos PyEZ를 사용하면 직렬 콘솔 연결, 텔넷 또는 SSH를 통한 NETCONF 세션을 사용하여 Junos 디바이스에 직접 연결하고 관리할 수 있습니다. 또한 Junos PyEZ는 디바이스의 CONSOLE 포트에 연결된 콘솔 서버에 대한 텔넷 또는 SSH 연결을 통해 디바이스 연결을 지원합니다. 또한 Junos PyEZ는 배스천 또는 점프 호스트와 같은 중간 디바이스를 통해 디바이스에 연결할 수 있습니다.

원격 디바이스는 연결 방법에 따라 비밀번호 또는 기타 표준 SSH 인증 메커니즘을 사용하여 사용자를 인증할 수 있어야 합니다. SSH 연결을 통해 Junos 디바이스를 관리할 때 디바이스에 액세스하는 가장 편리하고 안전한 방법은 SSH 키를 구성하는 것입니다. SSH 키를 사용하면 원격 디바이스에서 신뢰할 수 있는 사용자를 식별할 수 있습니다.

매니지드 Junos 디바이스에 액세스할 수 있는 모든 사용자 계정을 사용하여 디바이스 작업을 수행할 수 있습니다. 클래스의 jnpr.junos.device.Device 새 인스턴스를 생성할 때 사용자를 명시적으로 정의할 수 있습니다. 사용자를 지정하지 않으면 기본적으로 환경 변수의 $USER 값이 적용됩니다.

SSH 연결의 경우, Junos PyEZ는 ~/.ssh/config에 있는 기본 SSH 구성 파일이 있는 경우 이를 자동으로 쿼리합니다. 인수 목록에 포함 ssh_config Device 시켜 다른 구성 파일을 지정할 수도 있습니다. Junos PyEZ는 사용자 또는 ID 파일과 같이 인수 목록의 Device 인수로 재정의되지 않는 SSH 구성 파일의 모든 관련 설정을 사용합니다.

SSH를 사용하여 디바이스에 연결할 때 Junos PyEZ는 먼저 SSH 공개 키 기반 인증을 시도한 다음 암호 기반 인증을 시도합니다. 비밀번호 기반 인증이 사용되는 경우, 제공된 비밀번호가 디바이스 비밀번호로 사용됩니다. SSH 키를 사용할 때 제공된 암호는 개인 키를 잠금 해제하기 위한 암호입니다. 키를 SSH 키 에이전트에 로드하거나 SSH 개인 키에 빈 암호가 있는 경우에는 암호를 제공할 필요가 없습니다. 그러나 빈 암호와 함께 SSH 개인 키를 사용하는 것은 권장하지 않습니다.

참고:

사용자 환경에 적합한 안전한 방식으로 자격 증명을 얻습니다. 가장 좋은 방법은 암호화되지 않은 형식으로 저장하는 대신 스크립트를 실행할 때마다 자격 증명을 묻는 메시지를 표시하는 것입니다.

다음 섹션에서는 다양한 인증 방법에 대해 설명합니다.

암호를 사용하여 Junos PyEZ 사용자 인증

암호를 사용하여 Junos PyEZ 사용자를 인증하려면:

  1. 즐겨 사용하는 편집기에서 .py 파일 확장자를 사용하는 새 파일을 만듭니다.

    이 예에서는 파일 이름 junos-pyez-pw.py 를 사용합니다.

  2. 연결할 호스트 이름 또는 IP 주소, Junos 디바이스의 사용자 이름 및 비밀번호를 묻는 코드를 포함합니다.
  3. Junos PyEZ 클라이언트가 콘솔 서버에 대한 SSH 연결을 통해 디바이스에 연결되면 콘솔 서버 사용자 이름과 암호를 입력하라는 메시지를 표시합니다.
  4. Junos PyEZ 클라이언트가 기본값과 다른 포트에 연결되면 포트 번호를 묻는 메시지를 표시합니다.
  5. Device 생성자 인수 목록에서 :
    • 원격 디바이스의 호스트 이름 또는 IP 주소를 포함하는 변수에 인수를 설정합니다 host .

    • user 및 passwd 인수를 Junos OS 로그인 자격 증명을 포함하는 변수에 설정합니다.

    • Junos PyEZ 클라이언트가 SSH 연결을 통해 콘솔 서버에 연결되는 경우 콘솔 서버 로그인 자격 증명을 포함하는 변수에 인수를 설정합니다 cs_user cs_passwd .

    • Junos PyEZ 클라이언트가 기본이 아닌 포트에 연결하는 경우 적절한 경우 포트를 포함하는 변수에 인수를 설정합니다 port .

    • 연결 메서드에 필요한 추가 인수를 포함합니다.

    다음 예제에서는 각각의 다른 연결 방법에 대한 샘플 코드를 제공합니다.

    참고:

    Junos OS를 실행하는 모든 플랫폼에는 기본적으로 암호 없이 루트 사용자만 구성됩니다. Junos PyEZ를 사용하여 콘솔 연결을 통해 새 디바이스 또는 제로화된 디바이스를 처음 구성할 때 을 사용하고 user='root'매개 변수를 passwd 생략합니다.

  6. Junos PyEZ 코드를 실행합니다.

    호스트 이름, Junos OS 사용자 이름 및 비밀번호, 콘솔 서버 사용자 이름 및 비밀번호(요청 시), 포트(요청 시)를 입력하라는 메시지를 표시합니다. 프로그램은 명령줄에서 암호를 에코하지 않습니다.

SSH 키를 사용하여 Junos PyEZ 사용자 인증

Junos PyEZ 애플리케이션에서 SSH 키를 사용하려면 먼저 구성 관리 서버에서 키를 생성해야 합니다. 그런 다음 Junos PyEZ 클라이언트가 연결할 각 디바이스에서 공개 키를 구성합니다. 디바이스에는 Junos 디바이스, 콘솔 서버 또는 배스천 또는 점프 호스트가 포함될 수 있습니다. 키를 사용하려면 인수 목록에 적절한 인수를 Device 포함해야 합니다.

Junos PyEZ는 SSH 키 에이전트에 능동적으로 로드되는 SSH 키, 기본 위치 또는 사용자 정의 위치에서 생성된 키, 암호 보호를 사용하거나 포기하는 키를 활용할 수 있습니다. 인수가 암호를 지정하지 않거나 SSH 키 파일을 참조하지 않는 경우 Device , Junos PyEZ는 먼저 SSH 키 에이전트에 적극적으로 로드된 SSH 키를 확인한 다음 기본 위치에서 SSH 키를 확인합니다. 콘솔 서버에 연결할 때 SSH 키는 암호로 보호되어야 합니다.

다음 섹션에서는 SSH 키를 생성하고, 원격 디바이스에서 키를 구성하고, 키를 사용하여 매니지드 디바이스에 연결하는 단계를 간략하게 설명합니다.

SSH 키 생성 및 구성

구성 관리 서버에서 SSH 키를 생성하고 원격 디바이스에서 공개 키를 구성하려면 다음을 수행합니다.

  1. 서버에서 필요한 사용자에 대한 공용 및 개인 SSH 키 쌍을 생성하고 필요하거나 원하는 옵션을 제공합니다. 예를 들면 다음과 같습니다.
  2. (선택 사항) 네이티브 SSH 키 에이전트에 키를 로드합니다.
  3. Junos PyEZ 애플리케이션이 연결할 각 디바이스(Junos 디바이스, 콘솔 서버 또는 배스천 또는 점프호스트를 포함할 수 있음)에서 적절한 사용자 계정 아래에 공개 키를 구성합니다.
    • Junos 디바이스에서 공개 키를 구성하는 한 가지 방법은 파일에서 키를 로드하는 것입니다.

    • 서버 또는 점프호스트에서 공개 키를 구성하기 위해 다음 ssh-copy 명령을 사용할 수 있습니다.

  4. 키를 사용하여 디바이스에 로그인하여 키가 작동하는지 확인합니다.

Junos PyEZ 애플리케이션의 SSH 키 참조

SSH 키 쌍을 생성하고 원격 디바이스에서 공개 키를 구성한 후, Junos PyEZ 애플리케이션은 키를 사용하여 디바이스에 연결할 수 있습니다. 키를 사용하려면 생성자에 적절한 인수를 포함합니다. Device Device 인수는 다음에 의해 결정됩니다.

  • 키 위치

  • 키가 ssh-agent와 같은 SSH 키 에이전트에 적극적으로 로드되었는지 여부

  • 키가 암호로 보호되는지 여부

  • 사용자의 SSH 구성 파일이 이미 해당 호스트에 대한 설정을 정의하고 있는지 여부

다음 섹션에서는 다양한 시나리오에 대해 간략하게 설명합니다.

적극적으로 로드된 키와 함께 SSH 키 에이전트 사용

SSH 키 에이전트 또는 인증 에이전트를 사용하여 개인 키를 안전하게 저장하고 암호로 보호된 키에 대한 암호를 반복적으로 다시 입력하지 않도록 할 수 있습니다. Junos PyEZ 클라이언트는 SSH 에이전트에 능동적으로 로드되는 SSH 키를 사용하여 디바이스에 연결할 수 있습니다. 기본적으로 인수가 암호를 지정하지 않거나 SSH 키 파일을 참조하지 않는 경우 Device , Junos PyEZ는 먼저 SSH 키 에이전트에 적극적으로 로드된 SSH 키를 확인한 다음 기본 위치에서 SSH 키를 확인합니다. Device 인수 목록 또는 SSH 구성 파일의 설정을 통해 SSH 키 파일을 명시적으로 설정할 수 있습니다.

네이티브 SSH 키 에이전트에 능동적으로 로드된 SSH 키를 사용하여 디바이스에 연결하려면 다음을 수행합니다.

  • Junos 디바이스에 직접 연결하려면 인수 목록에 필요한 호스트 이름 또는 IP 주소 Device 만 제공하면 됩니다.

  • 배스천 또는 점프 호스트를 통해 Junos 디바이스에 연결하려면 Junos 디바이스의 호스트 이름 또는 IP 주소를 설정 host 하고 점프 호스트를 통한 연결을 정의하는 인수를 포함 proxy_command 합니다.

Device 생성자는 또한 SSH 키 에이전트 사용 시기를 보다 세밀하게 제어할 수 있도록 인수를 지원합니다allow_agent. 표 1은 설정을 간략하게 설명합니다.

표 1: Device allow_agent 인수
allow_agent 가치 동작

None(기본값)

SSH 연결은 인수가 암호를 지정하지 않거나 프라이빗 키 파일을 참조하지 않는 경우에만 Device SSH 에이전트의 키를 사용합니다(명시적으로 인수로 또는 SSH 구성 파일을 통해).

True

SSH 연결은 SSH 에이전트에 로드된 키를 사용합니다.

False

SSH 연결은 SSH 에이전트의 키를 사용하지 않습니다.

예를 들어, SSH 키 에이전트에서 호스트에 대한 SSH 키를 로드한다고 가정해 보겠습니다. 또한 SSH 구성 파일에는 해당 호스트에 대한 개인 키 파일로 옵션을 정의 IdentityFile 하는 호스트 항목이 포함되어 있습니다. Junos PyEZ 애플리케이션에서는 의 Device 인스턴스를 생성하고 인수만 정의합니다host. 기본적으로 에 Device 의해 IdentityFile정의된 비공개 키 파일을 사용합니다. 인수가 개인 키 파일을 참조하기 때문에 Device Junos PyEZ는 SSH 키 에이전트를 확인하지 않습니다. 개인 키 파일에 암호가 있는 경우 암호가 제공되지 않으므로 연결이 실패합니다. 따라서 SSH 에이전트를 사용하되 SSH 구성 파일allow_agent=True에서 옵션을 유지 IdentityFile 하려면 .

암호 보호 없이 SSH 키 사용

Junos PyEZ를 사용하면 클라이언트가 암호 보호가 없는 SSH 개인 키를 사용하여 Junos 디바이스에 직접 연결할 수 있습니다. 그러나 빈 암호와 함께 SSH 개인 키를 사용하는 것은 권장하지 않습니다. Junos PyEZ는 빈 암호 구문이 있는 SSH 개인 키를 사용하여 콘솔 서버에 연결하는 것을 지원하지 않습니다.

기본 위치에 있고 암호 보호가 없는 SSH 키를 사용하여 Junos 디바이스에 연결하려면 다음을 따르십시오.

  • Device 인수 목록에서 필요한 호스트 이름 또는 IP 주소만 제공하면 됩니다.

    Junos PyEZ는 먼저 활성 SSH 키 에이전트에 로드된 SSH 키를 확인한 다음 기본 위치에서 SSH 키를 확인합니다.

기본 위치에 없고 암호 보호가 없는 SSH 키를 사용하여 Junos 디바이스에 연결하려면 다음을 수행합니다.

  • Device 인수 목록에서 인수를 SSH 개인 키의 경로로 설정합니다ssh_private_key_file.

    참고:

    사용자의 SSH 구성 파일이 이미 지정된 호스트에 대한 로컬 SSH 개인 키 파일 경로를 지정하고 있는 경우, 인수 목록에서 인수를 생략 ssh_private_key_file 할 수 있습니다. Device 인수를 포함하면 ssh_private_key_file 사용자의 SSH 구성 파일에서 호스트에 대해 정의된 기존 IdentityFile 값보다 우선합니다.

암호로 보호된 SSH 키 사용

Junos PyEZ 클라이언트는 암호로 보호된 SSH 키를 사용하여 Junos 디바이스, 배스천 또는 점프 호스트를 통해 Junos 디바이스에 직접 연결하거나 디바이스에 연결된 콘솔 서버에 연결할 수 있습니다. 다음 섹션에서는 암호로 보호된 SSH 키에 대한 인수를 명시적으로 정의 Device 하는 방법에 대해 간략히 설명합니다. 대신 활성 SSH 키 에이전트에 로드된 암호로 보호된 키를 사용하려면 활성 로드된 키와 함께 SSH 키 에이전트 사용을 참조하십시오.

Junos 디바이스에 직접 연결

암호로 보호된 SSH 키를 사용하여 Junos 디바이스에 직접 연결하려면 다음을 따르십시오.

  1. SSH 개인 키 암호를 입력하라는 메시지를 표시하고 변수에 값을 저장하는 코드를 포함합니다.

  2. 인수 목록에서 Device :

    • SSH 키 파일 암호 구문을 포함하는 변수를 참조하도록 인수를 설정합니다 passwd .

    • 키가 기본 위치에 있지 않고 SSH 구성 파일이 아직 개인 키 파일 경로를 정의하지 않은 경우 개인 키의 경로에 인수를 설정합니다 ssh_private_key_file .

점프 호스트를 통해 연결

두 디바이스 모두에 대해 암호로 보호된 SSH 키를 사용하여 배스천 또는 점프 호스트를 통해 Junos 디바이스에 연결하려면 다음을 수행합니다.

  1. 네트워크 디바이스에 대한 SSH 개인 키 암호를 입력하라는 메시지를 표시하고 변수에 값을 저장하는 코드를 포함합니다.

  2. 인수 목록에서 Device :

    • 인수를 Junos 디바이스 호스트 이름 또는 IP 주소로 설정합니다 host .

    • Junos 디바이스에 대한 SSH 키 파일 암호가 포함된 변수를 참조하도록 인수를 설정합니다 passwd .

    • 키가 기본 위치에 있지 않고 SSH 구성 파일이 아직 개인 키 파일 경로를 정의하지 않은 경우, 인수를 Junos 디바이스의 개인 키 경로로 설정합니다 ssh_private_key_file .

    • 인수를 포함 proxy_command 하고 필요한 경우 사용자 및 ID 파일을 포함하여 점프 호스트에 대한 연결을 정의합니다.

스크립트를 실행하면 스크립트에서 개인 키의 암호를 입력하라는 메시지가 표시됩니다.

콘솔 서버를 통해 연결

암호로 보호된 SSH 키 파일을 사용하는 콘솔 서버를 통해 Junos 디바이스에 연결하려면 다음을 수행합니다.

  1. Junos 디바이스에 대한 로그인 자격 증명을 묻는 메시지를 표시하고 각 값을 변수에 저장하는 코드를 포함합니다.

  2. 콘솔 서버 사용자 이름과 개인 키 비밀번호를 입력하라는 메시지를 표시하고 각 값을 변수에 저장하는 코드를 포함합니다.

  3. 인수 목록에서 Device :

    • 인수를 콘솔 서버 호스트 이름 또는 IP 주소로 설정합니다 host .

    • user 및 passwd 인수를 Junos OS 로그인 자격 증명을 포함하는 변수에 설정합니다.

    • 인수를 cs_user 콘솔 서버 사용자 이름이 포함된 변수에 설정합니다.

    • SSH 키 파일 암호가 포함된 변수에 인수를 설정합니다 cs_passwd .

    • 키가 기본 위치에 있지 않고 SSH 구성 파일이 아직 개인 키 파일 경로를 정의하지 않은 경우 개인 키의 경로에 인수를 설정합니다 ssh_private_key_file .

    • 콘솔 서버의 TTY 디바이스에 매핑되는 TCP 포트에 인수를 설정합니다 port .