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가지 보안 지침에 따르면(학습상의 이유로 모두 포함합니다):
- 가능한 경우 전송된 데이터를 암호화하세요..
- 취약점을 최소화하기 위해 소프트웨어 최소화.
- 다양한 시스템에서 다양한 네트워크 서비스 실행.
- 시스템 견고성을 향상시키기 위한 보안 도구 구성.
- 최소 권한 원칙 사용.
굵은 글꼴은 원본 게시물에 적용됩니다.
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