使用密钥对连接远程服务器

type
Post
status
Published
date
Apr 22, 2023
slug
sshkey
summary
通过 ssh-keygen 生成密钥对,私钥保存在本地,公钥上传至服务器端
tags
Server
ssh
icon

Basic

1. 打开本地命令行(例如,Windows 使用 cmd),输入命令 ssh-keygen ,一路回车到底

notion image

2. 进入上图红色横线标注的目录中,可以看到有两个文件。

notion image
其中, id_isa 是私钥,放在本地; id_rsa.pub 是公钥,需要上传/拷贝到服务器

2.a 如果是 Linux 或 Mac,一般都有 ssh-copy-id 命令

在本机终端执行
完成后可直接到第 7 步测试

3. 使用密码登录方式登录服务器,进入当前用户目录下的 .ssh 文件夹(如果没有手动创建一个)

查看 .ssh 目录下的 authorized_keys 文件(如果没有手动创建一个)

4. 第 2 步的 id_rsa.pub 右键,打开方式使用 VS Code 打开,全选内容后复制

5. 在第 3 步的 authorized_keys追加刚刚复制的公钥内容

追加是指,如果 authorized_keys里面有内容,新起一行后黏贴第 4 步复制的公钥内容

6. 修改 authorized_keys 的权限为 600

在服务器命令行里执行

7. 测试登录

新开一个本地命令行环境,输入
其中:
  • YOUR_SK_FILE 是第 1 步图中画红线的的内容,例如我的就是 C:\Users\Eason\.ssh\id_rsa
  • USERNAME 是你登录服务器时的用户名,可能是 root 或者其他
  • YOUR_SERVER_IP 是你的服务器 IP

Bonus

VS Code 使用密钥连接远程服务器

前置条件:完成 Basic 里的内容
  1. 在 Basic 第 1 步生成的公私钥所在的目录(C:\Users\Eason/.ssh)下,会有一个 config 文件(如果没有,手动创建一个)
  1. 右键该 config 文件,使用 VS Code 打开
  1. 在打开文件后追加如下内容
    1. 其中:
      • YOUR_SK_FILE 是 Basic 中第 1 步图中画红线的的内容,例如我的就是 C:\Users\Eason\.ssh\id_rsa (注意两侧是被英文双引号包起来的)
      • USERNAME 是你登录服务器时的用户名,可能是 root 或者其他
      • YOUR_SERVER_IP 是你的服务器 IP
      • AliCloud 一个名字,可以随意起,也可与 IP 保持一致,方便你自己辨识就行
       

© insv 2021 - 2023