개발자 용 컴퓨터가 있고 서버에 액세스 할 수 있도록 SSH 키를 설정했습니다. .ssh의 공개 키와 개인 키는 분명히 사람에게 표시됩니다.SSH 키 보호
이러한 키를 보호 할 방법이 있습니까? 이러한 키가 다른 서버로 복사 될 가능성을 원하지 않는다면 아무 것도 할 수 있습니까?
기본적으로 ssh-agent는 로그인 한 사용자로 실행되므로 ~/.ssh 폴더에 대한 사용자 액세스 권한을 제거 할 수 없습니다.
덕분에, Tabrez
개발자 용 컴퓨터가 있고 서버에 액세스 할 수 있도록 SSH 키를 설정했습니다. .ssh의 공개 키와 개인 키는 분명히 사람에게 표시됩니다.SSH 키 보호
이러한 키를 보호 할 방법이 있습니까? 이러한 키가 다른 서버로 복사 될 가능성을 원하지 않는다면 아무 것도 할 수 있습니까?
기본적으로 ssh-agent는 로그인 한 사용자로 실행되므로 ~/.ssh 폴더에 대한 사용자 액세스 권한을 제거 할 수 없습니다.
덕분에, Tabrez
당신은 개발자가 키를 사용하지만 복사 할 수 있도록하고 싶습니다.
이렇게하려면 개발자가 전체 액세스 권한이없는 서버에 키를 저장할 수 있습니다. 이를 구현하는 한 가지 방법은 다음과 같습니다.
개발자는 이제 키 보관소 서버에서 실행중인 에이전트를 사용하여 두 번째 서버의 다른 위치에 로그인 할 수 있지만 키에있는 파일을 검사하거나 복사 할 수있는 기회가 전혀 없습니다 관리 서버.
이 솔루션은 모든 개발자 세션이 키 보관소 서버와 두 번째 공유 서버를 통해 채널링된다는 사실로 인해 어려움을 겪습니다. 키 보관소 서버가 원격 인 경우 이는 단점 일 수 있습니다. 또한 개발자가 파일 (SCP 또는 SFTP)을 로컬 컴퓨터로 다시 전송하는 데 사용하기가 어렵고 직관적이지 않습니다.
다른 솔루션으로는 SSH 에이전트 요청을 전용 저장소를 통해 키 보관 서버의 실제 에이전트에 전달하는 스텁 SSH 에이전트 서버를 개발자 컴퓨터에 로컬로 생성하는 소프트웨어 작성이 포함됩니다. 약간의 작업을 통해 키 보관소 서버 (자체 SSH 연결)에 대한 전용 연결을 설정할 수 있으므로 개발자 컴퓨터에서 해당 환경에 스텁 ssh 에이전트 소켓이있는 간단한 서브 쉘이 자동으로 실행되므로 "그냥 사용할 수 있습니다 "이 솔루션은 실제로 매우 기능적이고 사용자 친화적 일 수 있습니다. 나는이 일을 혼자했지만 Stackoverflow 대답의 범위를 넘어서는 길이다.
안녕하세요. Celada - 답변 해 주셔서 감사합니다. 나는 원격 기계와 개발자 기계의 로컬 컴퓨터로 파일 전송 메커니즘을 가지고 있지 않다. 원격 컴퓨터의 키를 보호하려면 어떻게해야합니까? (사용자가 RDP 또는 VNC를 통해 로그인하는 경우) ssh-agent는 사용자 권한으로 실행되므로 ~/.ssh에 대한 액세스 권한을 갖게됩니다. – Tabrez
사용자는 쉘을 가져 오거나 키 보관자에게 임의의 프로그램을 실행할 수 없기 때문에 에이전트 나 키 파일 자체를 제어 할 수 없습니다. 사용자가 키 보관소에 로그인하면 제한된 쉘로 강제됩니다. – Celada
아니요, 파일에 키를 저장하는 경우에는 아무 것도 없습니다. 키가 하드웨어 (스마트 카드)에 저장되는 경우 복사를 방지하는 방법이 있습니다. – Zoredache
SSH는 컴퓨터 기반 접근을 제한하지 않는다. – madth3
'man sshd_config'를 확인하고'HostCertificate' 및/또는'Match'를 설정하여 사용자를 특정 발신 호스트로 제한 할 수 있다고 생각합니다. – nicerobot