편집하다:아래 답변을 참조하세요. 내 가정이 틀렸습니다.
내 SSH 구성(OS X의 경우)에 다음이 있는 경우 ~/.ssh/config
보안 위험이 있습니까?
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/my-secret-key.pem
내가 이해하는 바는 내가 참여하는 모든 호스트에 내 비밀 키를 보낼 것이라는 것입니다 ssh
. 이 올바른지? 그렇다면 이것이 보안 위험입니까? 이론적으로 호스트가 내 비밀 키를 사용하여 일부 주요 SSH 호스트(예: GitHub)에 로그인하려고 할 수 있습니까?
을 지정하면 HostName
키가 해당 호스트에만 전송된다고 생각하는 것이 맞습니까?
Host *
HostName github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/my-secret-key.pem
그만큼GitHub용 SSH 설정을 위한 공식 문서첫 번째 구성을 사용하는 것이 좋습니다 ...
답변1
SSH는~ 아니다개인 키를 서버로 보냅니다. 메커니즘은 엔터티가 소유한 것을 사용한 계산을 기반으로 합니다. 서버는 공개 키를 기반으로 무언가를 계산하고, 클라이언트는 개인 키를 기반으로 무언가를 계산합니다(참조).이 정보 보안 스택 교환 게시물이상).
어떤 경우든 에이전트에 키를 추가하는지 여부에 관계없이 SSH는 성공할 때까지 모든 키를 시도합니다. Agent Forwarding 설정이 없으면 아무것도 할 수 없다고 생각합니다.섬기는 사람에이전트에 추가된 키를 사용할 수 있습니다.
Host *
HostName github.com
AddKeysToAgent yes
이는 Hostname
모든 Host
항목 을 로 설정하는데 github.com
이는 확실히 사용자가 원하는 작업이 아닙니다(즉, ssh foo.bar
에 연결됨을 의미함 github.com
). 에 대한 연결에만 일부 구성을 적용하려면 github.com
이를 Host
패턴으로 사용하십시오.
Host github.com
IdentityFile ~/.ssh/my-secret-key.pem
보안 위험인지 여부는 방어 대상이 누구인지에 따라 다릅니다. SSH 키가 비밀번호로 보호되어 있고 다른 사람이 시스템의 SSH 에이전트에 액세스할 수 있는 경우, 에이전트에 추가되면 비밀번호로 보호된 모든 키가 열려 액세스할 수 있습니다.
그러나 나는 위협이 있을 것 같지 않다고 말하고 싶습니다.