만약 당신이 SSH 인증서를 사용하지 않았다면 당신의 SSH가 틀렸을 것입니다 | 3회: 이상적인 SSH 흐름
6593 단어 sredevopsopensourcesecurity
이상적인 SSH 흐름
SSH 인증서 인증은 이상적인 SSH 흐름의 기초입니다.
SSH의 경우 사용자가 먼저 터미널에서 로그인 명령을 실행합니다(예:
step ssh login
).$ step ssh login
Your default web browser has been opened for you to login: https://accounts.google.com/...
브라우저가 열리고 SSO 흐름이 조직의 ID 공급업체에서 시작됩니다.웹 기반의 단일 로그인 흐름은 강력한 MFA(예를 들어 FIDO U2F)와 귀하의 신분 공급자가 제공하는 다른 고급 신분 검증 기능을 쉽게 이용할 수 있습니다.사용자는 익숙한 절차를 사용하여 로그인하고 규범 신분 제공 프로그램에서 사용자를 삭제하면 SSH 접근이 신속하게 종료될 수 있습니다.
사용자가 SSO를 완료하면 OIDC ID 토큰과 같은 토큰이 로그인 유틸리티에 반환됩니다.이 유틸리티는 새 키 쌍을 생성하고 인증서 요청에 대한 인증과 인증을 불러오는 영패를 사용하여 CA로부터 인증서 서명을 요청합니다.
CA가 반환하는 인증서의 유효기간은 영업일 기준 16-20시간입니다.로그인 유틸리티는 서명 인증서와 해당하는 개인 키를 사용자의
ssh-agent
에 자동으로 추가합니다.사용자는 이런 세부 사항을 알 필요가 없다.그들이 알아야 할 것은 SSH를 사용하기 위해서는
step ssh login
을 먼저 실행해야 한다는 것이다.완료되면 일반 사용자처럼 SSH를 사용할 수 있습니다.$ ssh prod01.example.com
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1036-gcp x86_64)
Last login: Wed Sep 11 04:04:51 2019 from 98.210.132.79
mmalone@prod01:~$
브라우저 쿠키와 마찬가지로 이 흐름에서 발급된 단기 인증서는 짧은 증명서로 근무일만 지속됩니다.사이트에 로그인하는 것과 마찬가지로 SSH에 로그인하면 세션을 만들 수 있습니다.이것은 간단한 과정으로 매일 최대 한 번만 완성할 수 있다.이것은 빈번하지 않다. 강력한 다기능 분석은 낙담하거나 알레르기가 없는 사용자를 사용할 수 있다.사용자가 로그인할 때마다 디스크에 접촉하지 않는 새 키와 인증서가 자동으로 생성됩니다.
ssh-agent
을 직접 삽입하면 사용자와 민감한 증거를 분리할 수 있습니다.사용자가 다른 장치에서 연결하려면 step ssh login
을 실행하는 것이 ssh-agent
에서 키를 추출하고 다시 사용하는 것보다 쉽습니다.이런 흐름은 많은 가능한 변화가 있다.인증서 만료 시간을 조정하여 CA에서 SSO 대신 PAM 인증을 사용하거나 스마트 카드나 TPM에서 개인 키를 생성하거나
ssh-agent
을 사용하지 않거나 MFA를 실제 SSH 연결로 이동할 수 있습니다.개인적으로 나는 이런 조합이 안전성과 가용성의 최상의 균형을 제공했다고 생각한다.사실상 대부분의 기존 SSH 배포에 비해 조작이 간단하고 안전하며 사용할 수 있다.SSH 인증서 인증에 대한 비판자는 이 인증서가 새롭고 지원되지 않으며 이 도구가 존재하지 않아 실천에서 인증서를 사용할 수 없다고 말한다.사실은 인증서 인증은 약 10년 전 OpenSSH 5.4에 추가된 것이다.그것은 전투 테스트를 거쳐 대규모 운영 생산에 사용되었다.이러한 이상적인 SSH 흐름을 구축하는 데 필요한 도구는 이미 사용할 수 있습니다.
도구
SSH 인증서를 관리하는 데 사용되는 기존 도구가 많습니다.다음은 몇 가지입니다.
step-ca
현재 SSH CA (X.509 CA 제외) step
으로 사용자와 호스트가 step-ca
에서 쉽게 인증서를 받을 수 있음ssh-keygen
은 루트 인증서를 생성하고 사용자와 호스트 인증서를 서명할 수 있습니다. netflix/bless
은 넷플릭스의 SSH CA로 AWS Lambda에서 실행되며 IAM nsheridan/cashier
은 무전기의 SSH CA uber/pam-ussh
인증서 권한 수여 sudo
사용 hashicorp/vault
SSH secrets enginestep-ca
의 적절한 구성을 통해 step
을 사용할 수 있습니다.시작 시 호스트 인증서 자동 가져오기
프레젠테이션을 위해
aws
CLI 도구를 사용하여 새 EC2 인스턴스를 만듭니다.재미있는 비트는 some light configuration에 숨겨져 있습니다(user-data startup script 사용). 호스트 인증서를 가져오고 인증서 인증을 사용합니다.$ aws ec2 run-instances --image-id ami-07d0cf3af28718ef8 \
--count 1 --instance-type t2.micro \
--key-name mike-test \
--security-group-ids launch-wizard-7 \
--user-data file://startup.sh
주의: 당신은 이곳에서 우리의 instance identity document support을 사용할 수 있을 것입니다. 그러나 우리는 아직 해결해야 할 문제가 있습니다.기대해주세요.SSO(OAuth OIDC)를 사용하여 사용자 인증서 얻기
현재 우리는 로컬에서
step ssh certificate
(brew install step
)을 사용하여 새 키 쌍을 생성합니다. CAusing SSO에서 인증서를 가져오고 인증서와 개인 키를 ssh-agent
에 자동으로 추가합니다.많이 들리지만 명령일 뿐입니다.
$ step ssh certificate [email protected] id_ecdsa
✔ Provisioner: Google (OIDC)
Your default web browser has been opened to visit:
https://accounts.google.com/o/oauth2/v2/auth?client_id=650...
✔ CA: https://ca.internal
✔ Private Key: id_ecdsa
✔ Public Key: id_ecdsa.pub
✔ Certificate: id_ecdsa-cert.pub
✔ SSH Agent: yes
완료 후, 우리는 인증서 인증을 사용하여 SSH를 통해 우리가 방금 만든 실례에 연결할 수 있으며, 두부가 필요하지 않습니다!$ ssh [email protected]
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-1044-aws x86_64)
Last login: Thu Sep 12 02:25:43 2019 from 98.210.132.79
mike@ip-172-31-70-94:~$
자세한 내용은 getting started guide 및 SSH example repo을 참조하십시오.CA를 설정할 때 --ssh
플래그를 step ca init
에 전달해야 합니다(입문 안내서는 그렇게 하지 않습니다).SSH 인증서의 인증을 더욱 훌륭하게 하려면 아직도 해야 할 일이 많다.우리는 지금 노력하고 있다.만약 당신이 어떤 생각이 있다면, let us know!
SSH 인증서 사용
SSH 인증서는 SSH 개선에 큰 역할을 합니다.그것은 허위 두부 경고와 호스트 키 검증 실패를 없앴다.복잡한 키 승인 및 배포 프로세스를 포기하고 SSO를 SSH로 확장할 수 있습니다.이것은 호스트의 키 업데이트를 가능하게 하고 키를 다시 사용하는 것보다 사용자를 더 쉽게 합니다.그것은 SSH 키를 짧게 하고 키 관리를 소홀히 하여 안전하지 않게 합니다.
몇 분 안에 SSH CA를 배포하고 호스트를 재구성할 수 있습니다.전환이 쉽습니다. - 공개 키 인증을 계속 지원할 수 있습니다.
SSH 인증서는 SSH를 수행하는 올바른 방법입니다.
SSH 인증서에 대한 자세한 내용은 를 참조하십시오.당신은 심지어 우리의 무료 위탁 관리 서비스를 시도하여 5분도 안 되는 시간 안에 SSH 인증서의 가치를 체험할 수 있습니다!
Reference
이 문제에 관하여(만약 당신이 SSH 인증서를 사용하지 않았다면 당신의 SSH가 틀렸을 것입니다 | 3회: 이상적인 SSH 흐름), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/smallstep/if-you-re-not-using-ssh-certificates-you-re-doing-ssh-wrong-episode-3-an-ideal-ssh-flow-5fc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)