몇 시간 동안 조사한 끝에 마침내 내 컴퓨터가 gnome ssh-askpass를 사용하여 더 이상 내 키를 요구하지 않는 이유를 알아냈습니다. 간단하지만 그것을 알아내는 데 오랜 시간이 걸렸습니다. 왜냐하면... 음... 비슷한 문제를 가진 대부분의 사람들은 완전히 다른 이유로 이 작업을 수행합니다(예: ssh- 에이전트가 실행되지 않음).
내 경우에는 아래에 키가 너무 많아서 하위 디렉토리를 ~/.ssh
제외하고 모두 이동했습니다 . 이는 다음과 같이 명령줄 옵션만 사용하여 특정 시스템에 액세스하는 데 적합합니다 .id_rsa
~/.ssh/other_keys
-i
ssh -i ~/.ssh/other_keys/topsecret domain
그렇지 않으면 디렉터리에 있는 모든 키를 테스트하지 않도록 SSH에 지시해야 합니다 ~/.ssh
. 왜냐하면 그런 일이 발생하면 시도 횟수가 소진되기 때문입니다. 일반적으로 3~5회 정도입니다.
이 문제를 해결하려면 다음을 수행할 수도 있습니다.
ssh -i ~/.ssh/topsecret -o 'IdentitiesOnly yes' domain
이를 위해서는 많은 입력이 필요합니다(예, 이를 구성 파일에도 추가할 수 있지만 빠른 테스트를 위한 것이라면 귀찮습니다.)
그래서... 이 모든 것이 여기 저기 연결하고 싶을 때 훌륭하게 작동하지만, ssh
이제 액세스할 때 ssh-agent
마다 ssh-askpass
올바르게 설정되었습니다.
그럼...무엇이 주어지나요?
어쨌든 실행하면 비밀번호를 묻지 않고 ssh-add
자동으로 키를 추가합니다 . ssh-agent
그런 다음 키를 사용해야 하는 즉시 ssh-askpass
암호를 입력하고 계속할 수 있는 키가 자동으로 시작됩니다(그런데 환경에 해당 이름의 변수가 필요하지 않습니다).
그러나 키가 하위 디렉터리에 정의되어 있으면 찾을 수 없으므로 추가되지 않으며, ssh-agent
사용 시 ssh
하위 디렉터리에서 찾을 수 없으므로 ssh-agent
컨트롤에 직접 추가됩니다. Taichung에서 비밀번호를 물어보지만 그놈 팝업에는 나타나지 않습니다.
키를 바로 아래로 다시 이동하면 ~/.ssh
문제가 해결되지만 뒤가 손상되므로 좋은 해결책은 아닙니다 ssh -i ...
. (ssh에 하나의 키만 사용하도록 지시하여 다른 문제를 해결하는 옵션이 있다는 것을 알고 있습니다 -o ...
. 하지만 명령줄에 지정된 키를 사용하여 ssh를 먼저 테스트해야 두 가지 문제가 모두 해결될 것이라고 생각합니다. 아 뭐.. .
그래서... 다음 명령을 실행하면:
ssh-add -D
ssh-agent
(1) 현재 존재하는 모든 키를 삭제하고 (2) 암호를 묻지 않고 아래에 있는 모든 키를 다시 설치합니다 ( ~/.ssh
적어도 명령을 실행할 때는 아님 ssh-add
).
모든 비밀번호를 한 번에 입력하지 않고도 다른 디렉터리(예: 내 하위 디렉터리) ssh-add
에 있는 키를 추가하도록 요구하는 방법(또는 다른 도구)이 있습니까?~/.ssh/other_keys
답변1
완전한 답변은 아니지만 매뉴얼 페이지를 보면 ssh-agent
다음과 같은 문단이 있습니다.
에이전트에는 처음에는 개인 키가 없습니다. 추가 키를 사용하세요
ssh-add(1)
. 인수 없이 실행 되면ssh-add(1)
파일~/.ssh/id_rsa
및~/.ssh/id_dsa
. ID에 비밀번호가 있는 경우 터미널(있는 경우) 또는 작은 X11 프로그램(X11에서 실행되는 경우)에서 비밀번호를 요청하세요. 둘 중 어느 것도 해당되지 않으면 인증이 실패합니다. 그런 다음 ID를 에이전트에 보냅니다. 여러 ID를 에이전트에 저장할 수 있으며 에이전트는 이러한 ID 중 하나를 자동으로 사용할 수 있습니다. 현재 에이전트가 보유하고 있는 ID를 표시합니다.~/.ssh/id_ecdsa
~/.ssh/identity
ssh-add(1)
ssh-add -l
따라서 현재 로드된 키를 확인할 수 ssh-agent
있으며 기본적으로 해당 단락에 설명된 키가 로드됩니다.
답변2
AddKeysToAgent
이 경우 이 옵션(최신 OpenSSH 버전에서 사용 가능)이 유용할까요?
ssh-agent(1) 실행에 키를 자동으로 추가할지 여부를 지정합니다. 이 옵션을 yes로 설정하고 키가 파일에서 로드되면 ssh-add(1)를 통해와 마찬가지로 키와 해당 암호가 기본 수명으로 에이전트에 추가됩니다. 이 옵션이 질문으로 설정된 경우 ssh(1)은 키를 추가하기 전에 SSH_ASKPASS 프로그램을 사용하여 확인을 요구합니다(자세한 내용은 ssh-add(1) 참조). 이 옵션이 확인으로 설정된 경우 ssh-add(1)에 -c 옵션이 지정된 것처럼 키를 사용할 때마다 확인해야 합니다. 이 옵션을 no로 설정하면 에이전트에 키가 추가되지 않습니다. 매개변수는 예, 확인, 질문 또는 아니오(기본값)여야 합니다.