나는 여기서 완전히 길을 잃었습니다.
SSH 개인 키(저는 그 중 다수를 가지고 있음)가 내 Keepass 데이터베이스에 저장되어 있다는 것을 발견했습니다. 이전에는 ssh -i를 사용하고 .ssh 디렉터리에서 로컬로 개인 키 파일을 가져오는 간단한 메뉴가 포함된 bash 스크립트가 있었습니다. 여기서 궁극적인 목표는 다양한 장치에서 사용할 수 있는 중앙에서 사용 가능한 비밀번호 및 개인 키 데이터베이스를 확보하는 것입니다.
나는 모든 ssh 개인 키를 keepass 데이터베이스에 넣었고, keepass/keeagent를 bash 터미널과 통합하는 방법을 찾으려고 노력하고 있습니다.
하지만 나는 keepass가 실제로 무엇을 하는지 오해한 것 같습니다. 내가 원하는 것은 Keepass 데이터베이스를 열고, 기존 bash 스크립트를 실행하고, 이런 방식으로 SSH 세션을 시작할 수 있게 하는 것입니다.
나는 ssh-agent를 사용하려고 노력해 왔지만 실제로 내가 거기에서 무엇을 하고 있는지, 어떻게 작동하는지 전혀 모릅니다. 온라인에서 찾은 모든 정보는 위의 단계를 따르거나 터미널을 사용하지 않는 옵션을 따릅니다.
그렇다면 다음과 같은 명령을 실행할 수 있는 방법이 있습니까? ssh -i KEEPASS-DB-PRIVKEY user@ip
아니면 keepass/keeagent/sshagent가 수행하는 작업이 아닌가요?
저는 우분투 20.04를 사용하고 있으며 데스크탑은 KDE Plasma입니다. keepass2(2.44)용 keeagent 플러그인을 설치했습니다.
답변1
나는 지금 꽤 일관성이 있다고 생각합니다. 새 부츠로 테스트한 결과 훌륭하게 작동했습니다. 그러나 큰 경고가 있습니다.
먼저 keeagent 옵션을 다음과 같이 편집합니다.
- 에이전트 모드:
Agent
- 자취:
/home/$USER/.ssh-keeagent.sock
그런 다음 .bashrc에 다음 줄을 추가했습니다.
export SSH_AUTH_SOCK="/home/$USER/.ssh-keeagent.sock"
나는 ssh-agent가 부팅 시 자동으로 시작되고(확실히 실수로 한 일임) openssh의 키를 처리한다고 확신합니다.
여기서 주목해야 할 점은 ssh가 로드하는 키에 대해 똑똑하지 않다는 것입니다. 따라서 여러 개의 키를 로드하고 목록의 마지막 키를 사용하려는 경우 목록의 다른 모든 키를 먼저 시도했기 때문에 서버는 결국 사용자를 거부합니다. 내 생각에 이것은 ssh가 어떤 키가 어떤 IP와 연관되어 있는지 알 수 있는 방법이 없기 때문이라고 생각합니다.
아마도 이는 .ssh/config를 사용하여 피할 수 있습니다. 하지만 저는 아직 망하지 않았습니다.
하지만 키가 로드되자마자 터미널을 열고 무언가를 입력하면 ssh user@IP
연결됩니다. 심지어 Keepass로부터 특정 키가 이미 다른 애플리케이션에서 사용되었다는 작은 알림도 받았습니다.
ssh가 IP에 대해 특정 키만 사용하고 실제 키는 Keepass 데이터베이스에 유지하는 아이디어를 이미 갖고 있는 사람이 있다면 듣고 싶습니다.
IdentityFile 아래 ~/.ssh/config의 공개키를 이용하여 문제를 해결할 수 있었던 것 같습니다.
Host hostname
Hostname IP
User user
IdentityFile ~/.ssh/key.pub
IdentitiesOnly yes
그림과 같이 모든 키를 로드한 후 ssh-add -l
간단히 호스트를 호출하면 호스트는 ssh hostname
구성에서 호출된 공개 키를 기반으로 올바른 개인 키를 선택합니다.
답변2
openSSH 클라이언트에서는 작동하지 않습니다. Windows 스타일을 탐색하여 키 파일을 선택하는 PuTTy 또는 KiTTy와 같은 GUI 응용 프로그램과 함께 사용하도록 설계되었습니다.
앱을 전환하려는 경우 설치할 수도 있습니다.Linux용 PuTTy. 이것은 동일한 방식으로 작동해야 합니다. 빠른 검색으로 찾은 모든 사용 가능한 지침은 Windows를 참조하므로 알 수 있는 유일한 방법은 테스트하는 것입니다.