SSH의 경우 사용자 이름과 비밀번호를 사용하는 것이 입력이 가능하기 때문에 더 편리한 것 같습니다. 반면 개인 키는 SSH를 사용하는 각 컴퓨터에 저장해야 합니다.
따라서 어떤 컴퓨터에서든 서버에 SSH로 연결하려면 사용자 이름과 비밀번호를 사용해야 합니다.
이 전제가 맞나요?
답변1
아니요. SSH가 유효한 키를 찾을 수 없으면 어쨌든 비밀번호로 대체되기 때문입니다. 따라서 호스팅용 키를 설정해도 잃을 것이 없습니다.
답변2
개인 키는 SSH에 사용되는 모든 컴퓨터에 저장되어야 합니다.
이는 SSH를 사용하는 올바른 방법이 아닙니다. 컴퓨터 간에 개인 키를 복사하는 것은 피해야 하는 약점입니다. 올바른 방법은 각 컴퓨터에서 키 쌍을 생성하고 모든 공개 키를 인증된 키 파일에 추가하는 것입니다. 이미 액세스 권한이 있는 다른 컴퓨터에 새 공개 키를 복사하고 SSH를 사용하여 인증 키 파일을 새 공개 키로 업데이트할 수 있습니다.
따라서 어떤 컴퓨터에서든 서버에 SSH로 연결하려면 사용자 이름과 비밀번호를 사용해야 합니다.
이는 실제로 사실이지만 귀하의 전제는 다음과 같기 때문에 보안이 취약할 것입니다.생각하다"모든 컴퓨터"(루트킷, 키로거 및/또는 가짜 SSH가 설치되어 있을 수 있음)에서 계정에 액세스하세요.
답변3
여기에 뭔가 빠진 것이 있는지 확인하고 싶었습니다.
고려해야 할 사항은 일반적으로 시스템 관리자로서 자신만의 워크스테이션을 갖고 해당 워크스테이션 내에 자신의 ID(예: 개인 키)가 포함된 사용자 프로필을 갖게 된다는 것입니다. 그리고 여러 워크스테이션을 사용하는 경우 이상적으로는 사용자 환경 파일이 복사됩니다. 또한 어떤 이유로든 워크스테이션 앞에 있을 수 없는 경우 자격 증명을 사용하여 워크스테이션에 SSH로 연결한 다음 거기에서 연결하려는 서버에 SSH로 연결합니다.
SSH를 사용하려면 사용자 이름과 비밀번호를 사용하는 것처럼 보입니다. 사용자 이름과 비밀번호는 어느 컴퓨터에서나 입력할 수 있지만 개인 키는 SSH에 사용되는 각 컴퓨터에 저장해야 하기 때문입니다.
모든 서버의 비밀번호를 기억할 수 있다면 비밀번호가 잘못된 것입니다. 비밀번호를 기억할 수 있도록 비밀번호가 저장된 문서에 액세스해야 하는 경우 개인 키를 검색할 수도 있습니다.
답변4
개인 키는 SSH에 사용되는 모든 컴퓨터에 저장되어야 합니다.
두 번째 단락(구체적으로 위 인용문에서 제가 집중하고 있는 부분)은 정확합니다. 여러 컴퓨터에서 로그인하는 경우 여러 컴퓨터에서 개인 키에 액세스해야 합니다. 이것은 몇 가지를 의미합니다. 첫째, 로그인하는 모든 컴퓨터는 개인 키로 끔찍한 일을 하지 않도록 신뢰할 수 있어야 합니다. 악성 기계는 신뢰할 수 없습니다. 둘째, 개인 키를 이러한 컴퓨터로 전송할 수 있는 방법을 찾아야 합니다. 이는 매우 불편할 수 있습니다.
여러 컴퓨터에서 로그인할 수 있도록 하려면 이 문제를 해결하는 몇 가지 방법이 있습니다. 한 가지 접근 방식은 덜 안전한 시스템에서 보안이 뛰어난 시스템으로 로그인하고 다양한 다른 시스템에서 사용할 수 있도록 보안 시스템에 키를 저장하는 것입니다. 공격자가 중간 컴퓨터에 암호를 보내려고 시도할 수 있으므로 보안 체인에는 여전히 약한 링크가 남아 있습니다. 일단 획득하면 공격자는 잠재적으로 다른 시스템에 대한 액세스를 제공하는 키에 대한 액세스 권한을 얻을 수 있습니다. 그러나 좋은 소식은 액세스하는 모든 컴퓨터에 개인 키를 넣을 필요가 없으므로 편리하다는 것입니다.
또 다른 방법은 일회용 자격 증명을 사용하는 것입니다. (일반적으로 일회용 비밀번호라고도 함) 이 방법을 사용하면 신뢰할 수 있는 장치를 사용하여 비밀번호를 생성할 수 있습니다. 스마트폰을 사용해 본 사람도 있습니다. 그런 다음 암호를 성공적으로 사용한 후에는 키가 손상(도난/복사)되더라도 전혀 신경 쓰지 않습니다. 그 이후에는 암호가 더 이상 쓸모가 없기 때문입니다.
일반적으로 동일한 시스템에 로그인하는 경우 일회성 비밀번호를 사용하는 것이 약간 더 편리할 수 있습니다. 일부 소프트웨어는 수동 작업이 덜 필요한 세부 정보(예: 일련 번호)를 기억할 수 있기 때문입니다. SSH 활동 시작 시 일회용 비밀번호를 사용한 다음 신뢰할 수 있는 시스템에 로그인하여 이러한 방법을 결합할 수 있습니다. 그런 다음 해당 시스템의 키 파일을 참조하여 다른 시스템에 로그인하십시오.
따라서 어떤 컴퓨터에서든 서버에 SSH로 연결하려면 사용자 이름과 비밀번호를 사용해야 합니다.
따라서 세 번째 문단은 제가 동의하지 않는 전제의 일부입니다. 왜냐하면 저는 귀하의 질문을 표준 비밀번호를 사용하여 항상 해오던 방식을 고수해야 한다는 의미로 해석했기 때문입니다. 대신 "일회용 비밀번호" 방법의 일부인 비밀번호 문구를 사용하십시오. 이렇게 하면 보다 정교한 보안 방법(키 파일과 마찬가지로 더 나은 보안 제공)을 사용할 수 있지만 키 파일을 사용하기 위해 신뢰할 수 없는 컴퓨터가 필요하지 않습니다.
올바른 방향을 안내하기 위해 OpenSSH는 skeyinit이라는 프로그램을 사용하여 skey 메서드를 통해 일회용 비밀번호를 지원합니다. 그런 다음 모바일 장치에서 비밀번호를 생성하기 위해 Android용 OTPdroid도 이를 지원합니다. 다른 가능한 솔루션이 있을 수 있지만 이는 함께 잘 작동하는 것으로 알려진 몇 가지 리소스에 대해서만 설명합니다.
참고 사항: 설명하는 상황(다중 시스템)의 경우 터미널 멀티플렉서(tmux 또는 screen)에 익숙해지는 것이 좋습니다. 이를 통해 일부 작업(예: 중개 시스템에서 다른 시스템에 로그인)을 수행한 다음 세션을 분리할 수 있습니다. 그런 다음 다른 컴퓨터에서 초기 로그인을 수행한 후 분리된 세션을 재개할 수 있으며 일부 일상 작업(예: 다른 컴퓨터에 로그인)을 다시 완료할 필요가 없을 수도 있습니다.