免密登录

更新时间:

参考本节设置开发环境远程免密登录,本节设置好后,通过命令行、VSCode 等 IDE 均可直接免密登录开发环境,一次配置永久生效。

# 背景说明

用户可通过平台提供的 SSH 功能远程连接开发环境,连接时可选择使用密码或密钥方式登录。密钥方式登录无需输入密码,提高了安全性、便捷性。

# 前提条件

已获取开发环境的 SSH 连接串信息。

# 操作步骤

# 生成秘钥对

  1. 平台右上角选择 “平台设置”,随后单击 “生成 SSH Key”。
  2. 在弹出框中勾选 “自动创建 SSH Key”,并单击 “确定” 生成秘钥对。
    系统保留公钥,并为您自动下载私钥。
  3. 重命名私钥文件,如 “id_rsa_dev”,并将其保存到本地用户家目录的 .ssh 目录下。

# 验证免密登录

打开终端,输入如下命令:

ssh -p 30022 xiaoming@root@ssh-f83735d46ac42a886db4702123088102.bn6c1b7xx42k@direct.virtaicloud.com -i ~/.ssh/id_rsa_dev -o"PubkeyAcceptedKeyTypes +ssh-rsa"

命令前半部分,是从平台复制的 SSH 连接串。后面:

  • -i:指定私钥文件路径为 ~/.ssh/id_rsa_dev
  • -o:指定允许的秘钥类型为 ssh-rsa

如果连接成功,将看到如下提示信息:

The authenticity of host 'root@ssh-f83735d46ac42a886db4702123088102.bn6c1b7xx42k@direct.virtaicloud.com (172.16.58.3)' can't be established.
ECDSA key fingerprint is SHA256:n/j+y/y+y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

输入 yes,确认连接。

# 编辑 SSH 配置文件

根据从平台获取的连接串信息,编辑 ~/.ssh/config 文件,添加以下内容并保存:

Host mydev
  HostName direct.virtaicloud.com
  Port 30022
  User xiaoming@root@ssh-f83735d46ac42a886db4702123088102.bn6c1b7xx42k
  IdentityFile ~/.ssh/id_rsa_dev
  PubkeyAcceptedKeyTypes +ssh-rsa

其中,

  • Host:设置自定义的主机名,可自由设置。
  • HostName:平台分配的 SSH 地址,填写连接串中最后一个 @ 后的内容。
  • Port:默认为 30022。
  • User:填写连接串中端口号后至最后一个 @ 前的内容。
  • IdentityFile:指定私钥文件路径。
  • PubkeyAcceptedKeyTypes:指定允许的密钥类型,应设置为 +ssh-rsa

# 免密连接开发环境

上述文件配置完成后,无需输入密码可直接登录开发环境。

  • 命令行方式登录:在终端中输入 ssh mydev,即可登录开发环境。
    ssh mydev
    # mydev 即为您在 ~/.ssh/config 文件中设置的自定义的主机名
    
  • IDE 方式登录:在 IDE 中选择远程主机即可登录开发环境,VSCode 示例如下: