1Password SSH 키 생성 화면

1Password SSH 키 생성 화면

1Password 8 버전부터 SSH & Git 관리 기능을 사용할 수 있다. 현재 Ed25519와 RSA 두가지 타입을 지원하며, 기존 SSH 키를 불러와서 저장할 수도 있다. 참고로 *.pem 파일을 1Password에 불러와서 저장한 후, 개인키를 다시 다운로드해서 사용할 땐 pem 확장자를 추가해야 한다.

1Password의 SSH & Git 관리 기능을 사용하면 SSH 개인키를 로컬에 저장하지 않고도 SSH 인증을 진행할 수 있다. ~/.ssh/config 파일에 일일이 SSH 키 경로를 명시해야 하는 번거로움도 덜 수 있다.

1Password에서 생성한 SSH 키는 공개키와 핑거 프린트(Finger Print)를 함께 생성하기 때문에 GitHub 같은 서비스에서 공개키 자동완성 기능도 사용할 수 있다. 별거 아닌 것 같지만 은근히 유용하다.

설정 방법


  1. 1Password SSH 에이전트 활성화

    Untitled

  2. ~/.password/agent.sock 경로에 대한 심볼릭 링크 추가

    mkdir -p ~/.1password && ln -s ~/Library/Group\\ Containers/2BUA8C4S2C.com.1password/t/agent.sock ~/.1password/agent.sock
    
  3. ~/.ssh/config 파일에 1Password SSH 에이전트 경로 추가. Host * 부분에 추가했으므로 모든 호스트에 대해 1Password 에이전트를 사용한다. 1Password에서 관리하는 SSH 키는 IdentityFile 항목에 일일이 경로를 명시하지 않아도 된다.

    Host *
      IdentityAgent ~/.password/agent.sock
    

    특정 호스트에만 1Password 에이전트를 사용하도록 할 수 있다. github-home 호스트는 1Password 에이전트를 사용하고 ec2-server 호스트는 로컬에 저장된 SSH 키(pem 파일)를 사용하는 예시 ▼

    # A host that's using the 1Password agent
    Host github-home
      HostName github.com
      User pi
      IdentityAgent ~/.1password/agent.sock
    
    # A host that's using a local private key file that's not saved in 1Password
    Host ec2-server
      HostName 54.123.45.67
      User ec2-user
      IdentityFile ~/.ssh/ssh-key-not-on-1password.pem
    

사용


터미널이나 SSH 클라이언트에서 git pull ... 같은 SSH 키를 사용하는 작업을 수행하면 SSH 키 사용 승인 팝업이 뜬다. 요청을 승인하면 1Password가 잠길때까지 동일한 SSH 키는 별도 승인없이 계속 사용할 수 있다(Touch ID / Windows Hello 같은 생체 인식으로 승인 가능).

EC2 인스턴스 접속시 나오는 액세스 허용 팝업

EC2 인스턴스 접속시 나오는 액세스 허용 팝업

1Password에 SSH 키를 저장해두면 웹사이트에 공개키를 등록할 때 자동 완성 기능을 사용할 수 있다. 일일이 공개키를 복사 / 붙여넣기 하지 않아도 된다. 공개키 자동 완성 기능은 GitHub, GitLab 등에서 사용할 수 있다

<aside> 💡 1Password에서 SSH 키를 생성(저장)하면 공개키와 핑거 프린트(Finger Print)가 함께 생성되며, ~/.ssh/config 파일에 SSH 키 경로를 명시하지 않아도 된다.

</aside>



GitHub 공개키 등록 페이지(SSH and GPG keys)의 자동 완성 팝업창

GitHub 공개키 등록 페이지(SSH and GPG keys)의 자동 완성 팝업창