어리석은 질문일 수도 있지만 어쨌든 물어봐야 합니다.
클라이언트 컴퓨터 A에 대한 SSH 공개 키를 이미 설정했습니다. 공개 키를 원격 서버에 복사했는데 모든 것이 잘 작동하고 A 컴퓨터에서 로그인할 수 있습니다.
이제 다른 컴퓨터에서도 해당 서버에 액세스하고 모범 사례에 따라 컴퓨터 A의 키를 다시 사용하는 대신 클라이언트 컴퓨터 B에 대한 다른 키를 생성하고 싶었습니다. 물론 키 쌍을 생성할 수는 있지만 클라이언트 컴퓨터 B에는 서버에 대한 액세스 권한이 없고 A에만 액세스할 수 있기 때문에 새 공개 키를 서버에 복사할 수 없습니다.
현재 제가 볼 수 있는 유일한 해결책은 USB 스틱의 새 공개 키를 클라이언트 컴퓨터 A로 가져가 거기에서 서버로 복사하는 것 같지만, n 컴퓨터가 있는 경우에는 약간 지루하고 실용적이지 않은 것 같습니다. 오히려 서로 멀리 떨어져 있어요.
이를 수행하는 올바른 접근 방식은 무엇입니까?
클라이언트와 서버는 모두 Linux를 실행하고 있습니다.
답변1
올바른 접근 방식이 있는지 확실하지 않으면 어떻게든 서버에 액세스해야 하며 현재로서는 머신 A가 유일한 액세스 포인트이므로 다른 n 머신뿐만 아니라 물리적으로 적어도 한 번은 액세스해야 합니다. 그렇다면 모든 공개 키를 USB 스틱에 수집하고 이를 머신 A로 이동하여 서버 사용자의 홈 .ssh 구성 디렉토리에 확산시키는 것은 어떨까요?
USB 스틱이 없으면 몇 가지 옵션도 있습니다.
변수 #1. 머신 A의 서버에서 비밀번호 로그인을 일시적으로 활성화합니다. 키 쌍을 생성하고 머신 B, C, D 등에서 서버로 공개키를 일반적인 방법으로 복사합니다. 서버에 대한 비밀번호 로그인을 비활성화합니다.
변수 #2. 임시 비밀번호 로그인도 보안 결함으로 간주되는 경우 홈 디렉토리 외에는 액세스할 수 없는 서버에 임시 사용자를 생성하고 이 사용자에 대해서만 비밀번호 로그인을 활성화하십시오. 키 쌍을 생성하고 서버 B, C, D 등의 공개 키를 이 사용자의 홈 디렉터리로 복사합니다. Pubkey는 기밀이 아니며 잠재적인 하이재킹은 안전한 상황으로 간주되지만 스푸핑은 그렇지 않으므로 어떻게든 암호화하거나 서명하는 것을 고려할 수 있습니다(gpg). 머신 A에서 서버에 로그인하고 공개키를 서버 사용자에게 전파하고 사용된 임시 사용자를 비활성화합니다.
변수 #3. SSH 서버 재부팅이 옵션이 아닌 경우 머신 A를 임시 SSH 서버로 만들고 이를 중간 스테이션으로 사용하여 SSH 공개 키를 실제 서버에 복사할 수 있습니다.
변수 #4. 다른 통신 채널(다른 원격 서버, 공개 서버, 이메일 등)을 사용하십시오. 다시 한번 말씀드리지만, pubkey는 기밀이 아니지만, 스푸핑으로부터 보호하기 위해 반드시 서명하시기 바랍니다.
답변2
글쎄, 공개 키를 원격 서버로 전송해야 합니다.어떻게든.
그러나 공개 키는 기밀이 아니므로(따라서 이름) USB 스틱에 복사하거나, 어딘가에 업로드하거나, 메모에 넣어 두는 등의 방법을 사용하세요.
서버에 추가한 키가 실제로 클라이언트에서 업로드한 키인지 확인하세요!
답변3
저는 보통 복사해서 붙여넣기로 SSH 키를 이동합니다. 하지만 이메일, http, netcat 등을 통해 보낼 수도 있습니다. 이는 단지 텍스트일 뿐입니다.
머신 C의 공개 키를 머신 B로 가져올 수 있으면 B에서 A로 SSH를 통해 C용 키를 설치할 수 있습니다.