作者:匿名
发布:15天前

0. 问题

Linux Ubuntu服务器已经申请了泛域名证书,想将其同步到Windows机器使用。

1. 探索

使用SSH密码登录不太安全。原因可以自行查询。

使用putty plink的话,plink新版本不支持输入密码, 使用echo password | 传入密码的话,一样存在不够安全的问题。

选用密钥对方案,需要生成密钥对,将其复制到服务器指定目录,但安全性高。

2. 解决办法

2.1 生成无密码密钥对

PS C:\Users\yourname> ssh-keygen -t rsa -b 4096 -f C:\Users\yourname\.ssh\scp_key -N ""
Generating public/private rsa key pair.
Your identification has been saved in C:\Users\yourname\.ssh\scp_key
Your public key has been saved in C:\Users\yourname\.ssh\scp_key.pub
The key fingerprint is:
SHA256:/H9xHhwzu3YwHS45234zcZjX4yGMktuykNXca+c yourname@yourcomputername
The key's randomart image is:
+---[RSA 4096]----+
|          ` +  + |
|         + +o+=oo|
|        o.+. +++o|
|       + +o.+f+o |
|        S.o..oo. |
|         oo.o 0E |
|         ..+o*   |
|         . .O..  |
|          .+=*   |
+----[SHA256]-----+

2.2 部署密钥到Ubuntu服务器

WinSCP通过SSH连接Ubuntu Linux,打开文件: /root/.ssh/authorized_keys,选择编辑,将2.1中生成的公钥scp_key.pub的内容全选复制,再粘贴到authorized_keys中,保存。

Ubuntu linux ssh证书 部署.png

2.3 使用私钥,用scp命令复制文件到本地

Windows上打开Powershell, 运行以下命令,即可将Linux服务上申请的泛域名证书复制到Windows上使用

scp -i "C:\Users\yourname\.ssh\scp_key" bkt@bktai.com:/root/.acme.sh/bktai.com_ecc/fullchain.cer D:\test
scp -i "C:\Users\yourname\.ssh\scp_key" bkt@bktai.com:/root/.acme.sh/bktai.com_ecc/bktai.com.key D:\test

解释一下 scp 命令:

scp -i "C:\Users\yourname\.ssh\scp_key" bkt@bktai.com:/root/.acme.sh/bktai.com_ecc/fullchain.cer D:\test

  • scp: 这是命令本身,代表“安全复制”(secure copy)。它使用SSH(Secure Shell)进行数据传输,并提供与SSH相同的身份验证和安全性。

  • -i "C:\Users\yourname\.ssh\scp_key":

    • -i: 这个标志指定了一个身份文件(私钥)的路径,用于公钥认证。
    • "C:\Users\yourname\.ssh\scp_key": 这是您本地Windows机器上私有SSH密钥文件的绝对路径。scp 将尝试使用此密钥与远程服务器进行身份验证,而不是使用密码。请将 yourname 替换为您实际的Windows用户名。
  • bkt@bktai.com:/root/.acme.sh/bktai.com_ecc/fullchain.cer: 这是您要复制的文件的

    • bkt: 这是 scp 用于登录远程服务器 (bktai.com) 的用户名。
    • bktai.com: 这是远程服务器的主机名或IP地址。
    • :/root/.acme.sh/bktai.com_ecc/fullchain.cer: 这是您要复制的远程服务器上文件的绝对路径。在这种情况下,它似乎是一个名为 fullchain.cer 的SSL/TLS证书文件。
  • D:\test: 这是复制文件在您的本地Windows机器上保存的目标

    • D:\test: 这指定了 fullchain.cer 文件将被复制到您 D: 盘上的 test 目录中。如果 D:\test 是一个目录,文件将被保存为 D:\test\fullchain.cer。如果 D:\test 是一个文件名且 D:\ 目录存在,它将覆盖 D:\ 中的 test 文件。通常,D:\test 会是一个已经存在的目录。

总而言之,此命令正在尝试:

安全地将远程服务器 bktai.com/root/.acme.sh/bktai.com_ecc/ 目录中的 fullchain.cer 文件(使用用户 bkt 登录并使用SSH密钥 C:\Users\yourname\.ssh\scp_key 进行身份验证)复制到您本地Windows机器上的 D:\test 目录。

Tags: 证书   scp   ssh  
1天前
98
1
0