SSH 키를 루트 또는 사용자로 생성하는 것에는 차이점이 있습니까?

SSH 키를 루트 또는 사용자로 생성하는 것에는 차이점이 있습니까?

SSH 키를 생성하고 싶은데 루트와 사용자로 키를 생성할 때 차이가 있는지 알고 싶습니다. 사용자로서 다음과 같이 합니다.

ssh-keygen -t rsa -C "[email protected]"

/home/user/.ssh/sudo su이전과 동일한 사용자를 사용한 다음 SSH 키를 생성 하면 vs에 저장되므로 키는 다음 위치에 저장됩니다./root/.ssh

SSH 키를 생성하는 올바른 방법은 무엇입니까? 루트로? 아니면 사용자로서? 감사해요

답변1

결과 키가 저장되는 위치(및 파일 소유권 및 키 설명) 외에는 차이가 없습니다.

슈퍼유저 권한이 엄격히 요구되지 않는 작업을 수행하기 위해 루트 계정을 사용하는 것은 피해야 하므로 루트용 SSH 키를 생성할 필요가 거의 없습니다.

일반적으로: 키를 사용할 사용자로 키를 생성합니다.

또한 에 관해서 sudo su는 "sudo su를 실행해야 할 이유가 있나요?"

답변2

NSA의 5가지 보안 지침에 따르면(학습상의 이유로 모두 포함합니다):

  1. 가능한 경우 전송된 데이터를 암호화하세요..
  2. 취약점을 최소화하기 위해 소프트웨어 최소화.
  3. 다양한 시스템에서 다양한 네트워크 서비스 실행.
  4. 시스템 견고성을 향상시키기 위한 보안 도구 구성.
  5. 최소 권한 원칙 사용.

굵은 글꼴은 원본 게시물에 적용됩니다.

SSH 키를 생성할 때, 한 쌍의

  • .pub로 끝나는 공개 키입니다. 공개 키는 서버에 있습니다.
  • 개인 키는 비밀이므로 이를 암호화할지 여부는 개인 키가 손상되거나 분실되거나 도난당할 경우 발생할 수 있는 피해 규모에 따라 달라집니다.

누가 키를 생성했는지, 개인 키가 어디에 있는지는 중요하지 않습니다. privateKey를 획득하면 해당 publicKey가 서버 측의authorized_keys 파일에 포함됩니다. 루트로서 일반 사용자 privateKey를 통해 인증을 시도합니다.

~# ssh root@server -o PreferredAuthentications=publickey -i /home/user/.ssh/server_key

또한 항상 SSH 키를 사용해야 하며 구성 파일에서 비밀번호 인증을 비활성화해야 한다는 점도 언급할 가치가 있습니다 /etc/ssh/sshd_config.

~$ sudo cat /etc/ssh/sshd_config | grep PasswordAuthentication
#PasswordAuthentication yes
PasswordAuthentication no

&

$ sudo cat /etc/ssh/sshd_config | grep Pub
PubkeyAuthentication yes

관련 정보