VScode链接服务器并配置公钥-SSH Keys

一直在用Xshell做SSH连接服务器与虚拟机,但是中文乱码的问题一直找不到解决方案,干脆使用编辑器自带的插件,集成之后用起来也方便

1.概述

做法其实很简单,VScode的应用商店中提供了Remote-SSH扩展,安装后照着官方文档配置就行了,不过文档是英文的,所以这里做下翻译和详述。

2.安装Remote-SSH

在应用商店中搜索Remote-SSH,安装:


安装成功后,打开编辑器左侧标签,新建ssh链接:


输入服务器ip后,选择配置文件存储位置(后面的公钥也会放在此文件下,保证运行),配置按钮打开配置文件:


此处可配置服务器名称、ip、账户名等

配置好后,右键左侧列表中需要链接的服务器,选择在新窗口中链接,会提示输入密码,选择操作系统,然后就登入成功了:


用法和在本机使用编辑器是一样的,左侧是资源管理,比起Xshell来直观了很多,可以右键创建终端,方便快捷。

3.配置SSH-keys

如果不配置公钥登录,则每次都要输入密码,不像Xshell可以保存密码。这点就麻烦多了,所幸公钥登录也不难配

首先需要创建一对钥匙,保存在配置文件存储位置,执行:

ssh-keygen -t rsa -b 4096
// 创建一对公钥和私钥(rsa加密,4096长度)
Generating public/private rsa key pair.
// 设置秘钥储存位置,默认是'~/.ssh'
Enter file in which to save the key (C:\Users\username/.ssh/id_rsa):

如何电脑中没有ssh-keygen命令,则需要安装:

操作系统 安装方式
Windows 10 1803+ / Server 2016/2019 1803+ Install the Windows OpenSSH Client.
Earlier Windows Install Git for Windows.
macOS 预装
Debian/Ubuntu Run sudo apt-get install openssh-client
RHEL / Fedora / CentOS Run sudo yum install openssh-clients

生成秘钥后,在目标文件夹('~/.ssh')下生成了两个文件:

// 私钥(放在本地)
id_rsa
// 公钥(配置到服务器)
id_rsa.pub

4. 服务器配置

在下面挑选合适的操作系统命令,把公钥配置到服务器的方式:

1.本地系统(macOS or Linux)=>服务器系统(macOS or Linux)

// 执行
// 使用你自己的服务器IP与登录账户
export USER_AT_HOST="服务器账户名@服务器IP"
// PUBKEYPATH是你公钥的路径
export PUBKEYPATH="$HOME/.ssh/id_rsa.pub"

ssh-copy-id -i "$PUBKEYPATH" "$USER_AT_HOST"

2.本地系统(macOS or Linux)=>服务器系统(Windows)

// 执行
// 使用你自己的服务器IP与登录账户
export USER_AT_HOST="服务器账户名@服务器IP"
// PUBKEYPATH是你公钥的路径
export PUBKEYPATH="$HOME/.ssh/id_rsa.pub"

ssh $USER_AT_HOST "powershell New-Item -Force -ItemType Directory -Path \"\$HOME\\.ssh\"; Add-Content -Force -Path \"\$HOME\\.ssh\\authorized_keys\" -Value '$(tr -d '\n\r' < "$PUBKEYPATH")'"

3.本地系统(Windows)=>服务器系统(macOS or Linux)

// 执行
// 使用你自己的服务器IP与登录账户
$USER_AT_HOST="服务器账户名@服务器IP"
// PUBKEYPATH是你公钥的路径
$PUBKEYPATH="$HOME/.ssh/id_rsa.pub"

$pubKey=(Get-Content "$PUBKEYPATH" | Out-String); ssh "$USER_AT_HOST" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '${pubKey}' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

4.本地系统(Windows )=>服务器系统(Windows )

// 执行
// 使用你自己的服务器IP与登录账户
$USER_AT_HOST="服务器账户名@服务器IP"
// PUBKEYPATH是你公钥的路径
$PUBKEYPATH="$HOME/.ssh/id_rsa.pub"

Get-Content "$PUBKEYPATH" | Out-String | ssh $USER_AT_HOST "powershell `"New-Item -Force -ItemType Directory -Path `"`$HOME\.ssh`"; Add-Content -Force -Path `"`$HOME\.ssh\authorized_keys`" `""

配置成功之后,就可以不输入密码自动连接了。

5.最后

你可以单使用一对秘钥,将同一个公钥配置到你所有的服务器,然后一个秘钥就可以自动登录所有的服务器。如果你想为服务器配置单一不同的公钥,则你需要生成多对秘钥:

// 执行生成不同的秘钥
// macOS / Linux系统
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa-remote-ssh
// Windows系统
ssh-keygen -t rsa -b 4096 -f "$HOME\.ssh\id_rsa-remote-ssh"

-f 参数用来配置秘钥生成的路径及名称

生成后重复上述第4点的服务器配置,然后在你的配置文件(.ssh/config)中为你的服务器配置IdentityFile属性,如下:

Host 服务器名称
    User 登录账户
    HostName 服务器IP
    IdentityFile 私钥路径

这样就分离了不同的秘钥。



VScode链接服务器并配置公钥-SSH Keys的更多相关文章

  1. SQL Server 远程链接服务器详细配置

    原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html - ...

  2. 服务器jupyter配置与ssh远程登录

    jupyter 配置 首先安装jupyter,在anaconda套装中已包含,如果安装的是精简版的miniconda则通过conda install jupyter安装. 生成配置文件 jupyter ...

  3. Git 进阶指南(git ssh keys / reset / rebase / alias / tag / submodule )

    在掌握了基础的 Git 使用 之后,可能会遇到一些常见的问题.以下是猫哥筛选总结的部分常见问题,分享给各位朋友,掌握了这些问题的中的要点之后,git 进阶也就完成了,它包含以下部分: 如何修改 ori ...

  4. GitHub使用笔记1:git客户端配置多ssh key

    公司用gitlab 外网的github同时配置 这样就导致我们要配置不同的ssh-key对应不同的环境. 具体操作步骤如下: 1:生成一个公司用的SSH-Key $ ssh-keygen -t rsa ...

  5. SQL Server 2008创建oracle链接服务器(心得)

    操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器.主要要点就是: 1.安装oracle精简客户端.当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了 ...

  6. 本地git库gitlab库链接服务器库 idea git 配置 gitlab 配置 git生成ssh公钥

    下载git  https://git-scm.com/ 安装以后会右键菜单出现Git Base Here 点击Git Base Here   输入 cd ~ 进入你的用户根目录 创建文件夹 mkdir ...

  7. 七、配置ssh keys连通github跟ssh-agent

    jenkins+github配置完成后,能够实现在提交pull request或者直接push时,能够将提交的代码拉去一份到服务器本地,并自动merge:但是代码拉去下来了,部署环境的时候却需要输入登 ...

  8. 创建SSH keys用于添加到Git服务器上

    SSH keys SSH key 可以让你在你的电脑和Git服务器之间建立安全的加密连接.先执行以下语句来判断是否已经存在本地公钥: cat ~/.ssh/id_rsa.pub 如果你看到一长串以 s ...

  9. ubuntun安装ssh,并远程链接服务器操作

    SSH是一种以安全.加密方式连接远程主机或服务器的方法.SSH服务器接受从有SSH的客户机的连接,允许操作者象在本地一样地登录系统.你可以用SSH从远程运行shell和X程序. (1)安装SSH服务器 ...

随机推荐

  1. 使用虚拟机在CentOS上安装部署数据库使用

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 本节描述使用数据库的基本操作.通过此节您可以完成创建数据库.创建表及向表中插入数据和查询表中数据等操作. 2.1 前提条件 ●openGauss正 ...

  2. IDEA版部署离线ArcGIS api for JavaScript

    痛苦!折磨! 这两天发现IDEA 做ArcGIS api 开发比EClipse好用(重点是没有JS提示).但引入的ArcGIS api 一直报错,说找不到.这两天思来想去就是不知道为什么找不到loca ...

  3. kdump原理,是如何找到入口的

    请解释下kdump原理,捕获内核是如何获取到生产内核的首地址的.

  4. BLHeli/ BLHeli_S开源无刷电调学习记录

    BLHeli的历史轨迹:BLHeli -> BLHeli_S -> BLHeli_32,我们重点学习BLHeli_S版本. 该代码支持常规的1-2ms脉冲宽度输入,以及Oneshot125 ...

  5. java面向对象思想之继承

    一.什么是继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为.可以联系生活进行理解,相当于父亲和儿子的关系.父亲有的属 ...

  6. 详细描述一下 Elasticsearch 索引文档的过程 ?

    面试官:想了解 ES 的底层原理,不再只关注业务层面了. 解答: 这里的索引文档应该理解为文档写入 ES,创建索引的过程. 文档写入包含:单文档写入和批量 bulk 写入,这里只解释一下:单文档写入流 ...

  7. C# 如何让new 出来的form显示在最外层?

    /// <summary> /// 显示比对不同点的位置 /// </summary> public void showDiffImage() { //在此处弹出不一样图 Bi ...

  8. python办公自动化系列之金蝶K3(三)

    小爬在之前的两篇文章 [python办公自动化系列之金蝶K3自动登录(一)].[python办公自动化系列之金蝶K3自动登录(二)]带大家系统搞定了K3客户端的自动登录难题,但是搞定[自动登录]只是我 ...

  9. IT架构和架构类型

    What is IT Architecture & Types of Architectures | ITARCH.INFO What is IT Architecture & Typ ...

  10. 面试BAT,你凭什么说你掌握了CSS

    介绍 项目已经开源:https://github.com/nanhupatar... 欢迎PR 推荐 关注我们的公众号 display: none; 与 visibility: hidden; 的区别 ...