--noask 옵션과 함께 키체인을 사용하여 SSH 키 비밀번호 저장

--noask 옵션과 함께 키체인을 사용하여 SSH 키 비밀번호 저장

키체인을 사용하여 SSH 키에 대한 비밀번호 프롬프트를 관리하고 싶지만 1) 실제로 키를 사용할 때만 요청하고 2) 나중에 잠시 동안 저장해야 합니다. 현재 2가지 옵션이 있습니다.

  1. $ eval `keychain --eval --agents ssh id_rsa`- 시작 시 항상 비밀번호를 묻지만 저장합니다.
  2. $ eval `keychain --eval --noask --agents ssh id_rsa`-- 시작할 때 아무 것도 묻지 않지만 키를 사용할 때마다 계속해서 비밀번호를 묻습니다.

이러한 방법의 장점을 결합할 수 있는 방법이 있습니까?

답변1

ssh-agent최신 버전의 OpenSSH를 사용하면 다음과 같은 작업이 쉬워집니다.

  1. ssh-agent추가된 키에 대한 기본 시간 제한(예: 60분)을 사용하여 정상적으로 시작합니다 .

    eval `ssh-agent -t 60m`
    
  2. ssh에이전트에 사용되는 실제 키를 추가하도록 구성합니다 . ~/.ssh/config`에 새 줄을 추가합니다.

    AddKeysToAgent yes
    

    이 기능은 최신 OpenSSH 7.2에 포함되어 있습니다. 이전 버전에서는 시간 초과가 발생한 경우 에이전트에 키를 수동으로 추가해야 했지만 다음과 같이 매우 간단하게 bash 기능을 사용하여 자동으로 키를 추가할 수 있습니다.

    ssh() {
      /bin/ssh -o BatchMode=yes $* || \
        ssh-add path/to/the-key && /bin/ssh $*
    }
    

    아이디어: 배치 모드에서 키를 사용하여 연결을 시도하고(키가 없으면 비밀번호를 묻는 메시지를 표시하지 않고 실패함), 실패하면 에이전트에 키를 추가하고 ssh 명령을 다시 실행하십시오.

관련 정보