如何生成 Openssl .pem 文件以及将其放在哪里

如何生成 Openssl .pem 文件以及将其放在哪里

我想生成一个 OpenSSL文件,以允许使用文件作为密码.pem通过 ssh 进行远程登录。.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

为了实施我到底需要做哪些改变?

谢谢

答案1

首先你需要将公钥上传到你想要连接的服务器,公钥在.pub文件中:

例子:

# ssh-copy-id -i ~/my-certificate.pub [email protected]

此后它应该可以工作并且您应该能够使用以下命令登录:

$ sudo ssh -i ~/my-certificate.pem [email protected]

在服务器上的文件 ~/.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

答案2

作为最佳答案的补充。确保服务器上的此文件中已打开这些可选项:/etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

删除这些注释标记。你可能需要重启 sshd 服务

service sshd restart

相关内容