Openssl .pem 파일을 생성하는 방법과 배치해야하는 위치


13

비밀번호 대신 파일을 .pem사용하여 ssh를 통한 원격 로그인을 허용 하는 OpenSSL 파일 을 생성하고 싶습니다 .pem.

다음을 사용하여 키 .crt.pem파일 을 생성 할 수 있습니다

sudo openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

그러나 문제는 /etc/ssh/sshd_config파일을 서버 측에 두어야하거나 파일을 사용하여 ssh를 통한 원격 로그인을 허용하기 위해 파일 에서 변경 해야하는 부분 .pem입니다.

클라이언트가 다음과 같은 방식으로 내 컴퓨터를 연결하고 싶습니다.

ssh -i server_crt.pem username@my_ip

구현을 위해 정확히 무엇을 변경해야합니까?

감사

답변:


18

먼저 연결하려는 서버에 공개 키를 업로드해야합니다. 공개 키는 .pub 파일에 있습니다.

예:

# ssh-copy-id -i ~/my-certificate.pub root@12.34.56.78

그 후에는 작동하고 다음을 사용하여 로그인 할 수 있어야합니다.

$ sudo ssh -i ~/my-certificate.pem root@12.34.56.78

변경 사항은 서버 시스템의 ~ / .ssh / authorized_keys 파일에서 변경되며 nano와 같은 텍스트 편집기로 열면 다음과 같이 시작하는 행이 표시됩니다. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAX ...

개인적으로 $ ssh-keygen -t rsa -b 2048 -v를 사용하여 키 파일을 생성합니다.이 파일은 .pem 및 pub 파일을 생성합니다. 질문을받을 때 :

키를 저장할 파일을 입력하십시오 (/home/user/.ssh/id_rsa).

.pem 파일의 이름을 입력하십시오 (예 : my-certificate.pem).

키 생성부터 로그인까지 단계별로 :

  1. $ ssh-keygen -t rsa -b 2048 -v를 저장하고 파일을 입력하라는 메시지가 표시되면 키를 생성하고 my-certificate암호를 입력하라는 메시지가 표시되면 Enter (빈 암호)를 누르고 Enter로 확인하십시오.
  2. 두 개의 파일이 생성됩니다. 하나는 my-certificate이고 다른 하나는 my-certificate.pub입니다. my-certificate의 이름을 my-certificate.pem으로 바꾸면 my-certificate.pub 및 my- certificate.pem
  3. 공용 인증서를 서버에 업로드하십시오. ssh-copy-id -i ~/my-certificate.pub username@ip
  4. 컴퓨터의 .pem 파일을 읽기 전용으로 설정 sudo chmod 400 my-certificate.pem
  5. 로 로그인 $ sudo ssh -i /path/to/my-certificate.pem user@ip

1
결국 나는 'Permission denied (publickey)' 오류가 발생 하고 연결할 수 없습니다
Farman Ali

보안상의 이유로 .pem 파일을 쓸 수 없어야합니다. 컴퓨터에서 sudo chmod 400 my-certificate.pem을 사용하고 다시 시도하십시오.
Mike

안녕, 나는 그것을 400으로 변경했습니다. 그러나 문제는 동일하게 남아 있습니다. 키 생성에서 클라이언트 연결에 이르기까지 전체 작업 단계를 단계별로 설명해 주시겠습니까?
Farman Ali

이름은 ssh-copy-id 다음에 내 인증서 파일을 찾기 때문에 수행해야합니다.
coolscitist
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.