SSH 인증서를 사용하지 않았다면 SSH가 잘못되었습니다 | 1회: 키와 인증서

SSH가 없는 곳이 없습니다.이것은 원격 관리 *nix 시스템의 실제 해결 방안입니다.그러나 SSH는 가용성, 조작 가능성, 안전성에 있어 상당히 심각한 문제가 존재한다.
다음과 같은 문제에 대해 잘 알고 계실 수 있습니다.

  • SSH 사용자 환경은 매우 나쁘다.SSH 사용자는 로그인 속도가 느려서 수동으로 작업해야 합니다.새 호스트에 연결하면 곤혹스러운 안전 경고가 발생합니다.너는 관리해야 할 이상한 새 인증서만 남았고, 어떻게 관리하는지에 대한 지도는 거의 없다.

  • SSH를 대규모로 실행하는 것은 재난이다.키 승인과 분배는 어리석은 시간 낭비이다.호스트 이름은 재사용할 수 없습니다.국산 공구는 관건적인 재료를 당신의 차량 대열에 분산시키고, 잠시 후에 반드시 비차량 사용자에게 정리해야 합니다.

  • SSH는 나쁜 안전 방법을 장려한다.키를 다시 설정하는 것은 매우 어려워서 아직 완성되지 않았습니다.사용자는 관건적인 자료에 접근할 수 있고 여러 장치에서 키를 재사용하도록 장려할 수 있다.키는 영구적으로 신뢰되기 때문에 오류가 발생했습니다.
  • 좋은 소식은 이 모든 것이 쉽게 복구된다는 것이다.
    이 문제들은 사실 모두 SSH 고유의 것이 아니다.실제로 SSH 공개 키 인증의 문제입니다.해결 방안은 인증서 인증으로 전환하는 것이다.
    SSH 인증서 인증은 SSH를 사용하기 쉽고 조작하기 쉽고 안전하게 합니다.

    출신 배경


    smallstep에서 인증서는 마치 우리의 잼과 같다.개인 인증서 발급 기관을 실행하고 X.509(TLS/HTTPS) 인증서를 관리할 수 있는 소스 오픈 소프트웨어를 구축했습니다.
    SSH 인증서가 우리 레이더에 한동안 나타났습니다.우리의 관점에서 볼 때 그들은 모두 찬성자이고 반대자가 없다.하지만 아무도 사용하지 않는다.왜 안 해요?우리는 이미 수백 명에게 이 문제를 물었다.다음은 우리가 발견한 것이다.
  • 사람들은 확실히 SSH 인증서를 사용한다.사실 규모적으로 움직이는 거의 모든 사람들이 자신이 무엇을 하고 있는지 알고 있다Facebook, Uber, 구글, Netflix, Intercom, Lyft 등등. 하지만...
  • 인증서와 PKI(공개 키 인프라)를 찾기가 어렵습니다.사람들은 결코 그 장점을 즉각 이해하지 못했다.
  • 에는 이런 지식 격차를 심화시키는 작은 도구 격차가 있다.채우는 것은 어렵지 않지만 PKI 개념에 대한 깊은 이해가 없으면 사람들은 조심스럽게 스스로 채운다.
  • 가장 중요한 것은 SSH 인증서가 제대로 중시되지 않았다는 것이다.우리가 묻는 대다수의 사람들은 전혀 그들을 들어 본 적이 없다.
  • 우리는 SSH 인증서가 SSH를 실현하는 정확한 방법이라고 확신한다.그들은 결코 이해하기 어렵지 않다. 이것은 매우 노력할 만하다.SSH 인증서는 더 많은 압력과 광범위한 사용을 필요로 합니다.

    공개 키 인증


    대부분의 SSH 배포는 공개 키 인증을 사용합니다. 비대칭(공개 키) 암호화를 사용하고 모든 사용자와 호스트에 공개 키/개인 키를 생성하여 인증을 합니다.
    비대칭 암호의 신기한 점은 공개 키와 개인 키 사이의 특수한 대응이다.개인 키를 사용하여 데이터에 서명할 수 있고, 다른 사람들은 해당하는 공공 키를 사용하여 서명을 검증할 수 있습니다.산열처럼 위조 서명은 계산상 불가능하다.따라서 서명을 검증할 수 있고 누가 개인 키를 가지고 있는지 알면 누가 서명을 만들었는지 알 수 있습니다.
    간단한 신분 검증은 누군가가 큰 무작위 숫자에 서명하는 것에 도전함으로써 실현될 수 있다.만약 내가 콘센트를 켜서 너에게 무작위 숫자를 보내고, 네가 이 숫자에 유효한 서명을 한다면, 나는 반드시 너와 이야기하고 있을 것이다.
    이것은 지나치게 간소화된 방식이지만 많든 적든 SSH 키 인증의 작업 원리이다.인증서 인증의 작업 방식은 같지만 중요한 전환점이 있습니다. 잠시 후에 소개하겠습니다.
    공개 키 인증을 사용하여 SSH를 통해 호스트에 연결하려면 호스트가 공개 키를 알아야 합니다.기본적으로 공개 키는 ~/.ssh/authorized_keys 에 추가되어야 합니다.차량 팀의 모든 사용자를 위해 이 파일을 유지하는 것은 작업에 도전적이며 오류가 발생하기 쉽다.

    공개 키 인증을 사용하는 SSH 사용자 로그인은 보통 발락 주문ssh-keygen부터 시작하여 런북에서 추출하기를 원하지만 창고 넘침에서 표절할 수 있습니다.다음은 승인과 분배를 위해 공개 키를 제출하도록 요구할 것입니다.이 과정은 통상적으로 수동적이고 불투명하다.관리자에게 이메일을 보내거나 JIRA 어음을 열어야 할 수도 있습니다.그리고 기다려.이렇게 하는 과정에서 일부 엉망진창인 운영자들이 끊어지고, 키를 어떤repo의 목록에 추가하고, 배치를 촉발하는 것을 알립니다.완료되면 SSH를 사용할 수 있습니다.키 바인딩은 영구적이기 때문에 SSH 액세스는 이 과정을 역전할 때까지 영구적으로 유지됩니다.

    인증서 인증


    인증서 인증은 키 승인과 배달을 제거합니다.정적 파일에 키를 분산하지 않고 인증서가 있는 이름으로 키를 연결합니다.인증서는 공개 키, 이름, 보조 데이터, 예를 들어 기한과 권한 등 데이터 구조일 뿐이다.데이터 구조는 인증서 발급 기관(CA)에서 서명합니다.
    $ ssh-keygen -L -f id_ecdsa-cert.pub
    id_ecdsa-cert.pub:
            Type: [email protected] user certificate
            Public key: ECDSA-CERT SHA256:O6M6oIjDm5gPm1/aTY619BgC3KSpS4c3aHVWxYh/uGQ
            Signing CA: ECDSA SHA256:EY2EXJGoPv2LA6yEbjH+sf9JjG9Rd45FH1Wt/6H1k7Y
            Key ID: "[email protected]"
            Serial: 4309995459650363134
            Valid: from 2019-09-11T14:50:01 to 2019-09-11T18:50:01
            Principals:
                    mike
            Critical Options: (none)
            Extensions:
                    permit-X11-forwarding
                    permit-agent-forwarding
                    permit-port-forwarding
                    permit-pty
                    permit-user-rc
    
    인증서 인증을 사용하려면 CA 공개 키가 서명한 인증서를 신뢰할 수 있도록 클라이언트와 호스트를 구성해야 합니다.
    각 호스트에서 편집/etc/ssh/sshd_config, 사용자 인증서를 검증하는 CA 공개 키, 호스트의 개인 키 및 호스트에 대한 인증서를 지정합니다.
    # Path to the CA public key for verifying user certificates
    TrustedUserCAKeys /etc/ssh/ssh_user_key.pub
    
    # Path to this host's private key and certificate
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostCertificate /etc/ssh/ssh_host_ecdsa_key-cert.pub
    
    각 클라이언트에 호스트 인증서 검증을 위한 CA 키를 지정하는 줄~/.ssh/known_hosts을 추가합니다.
    @cert-authority *.example.com ecdsa-sha2-nistp256 AAAAE...=
    
    그렇습니다.이것이 바로 인증서 인증을 사용하기 시작하는 데 필요한 모든 것이다.변환을 간소화하기 위해 공개 키 인증과 함께 사용할 수도 있습니다.

    더 이상 ~/.ssh/authorized_keys 의 정적 키가 필요하지 않습니다.반대로 연결을 만들 때 등점은 인증서 교환을 통해 서로의 키를 배워야 한다.인증서를 교환하면 프로토콜은 공개 키 인증처럼 진행된다.
    SSH 인증서에 대한 자세한 내용은 를 참조하십시오.당신은 심지어 우리의 무료 위탁 관리 서비스를 시도하여 5분도 안 되는 시간 안에 SSH 인증서의 가치를 체험할 수 있습니다!

    좋은 웹페이지 즐겨찾기