VScode链接服务器并配置公钥-SSH Keys
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的更多相关文章
- SQL Server 远程链接服务器详细配置
原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html - ...
- 服务器jupyter配置与ssh远程登录
jupyter 配置 首先安装jupyter,在anaconda套装中已包含,如果安装的是精简版的miniconda则通过conda install jupyter安装. 生成配置文件 jupyter ...
- Git 进阶指南(git ssh keys / reset / rebase / alias / tag / submodule )
在掌握了基础的 Git 使用 之后,可能会遇到一些常见的问题.以下是猫哥筛选总结的部分常见问题,分享给各位朋友,掌握了这些问题的中的要点之后,git 进阶也就完成了,它包含以下部分: 如何修改 ori ...
- GitHub使用笔记1:git客户端配置多ssh key
公司用gitlab 外网的github同时配置 这样就导致我们要配置不同的ssh-key对应不同的环境. 具体操作步骤如下: 1:生成一个公司用的SSH-Key $ ssh-keygen -t rsa ...
- SQL Server 2008创建oracle链接服务器(心得)
操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器.主要要点就是: 1.安装oracle精简客户端.当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了 ...
- 本地git库gitlab库链接服务器库 idea git 配置 gitlab 配置 git生成ssh公钥
下载git https://git-scm.com/ 安装以后会右键菜单出现Git Base Here 点击Git Base Here 输入 cd ~ 进入你的用户根目录 创建文件夹 mkdir ...
- 七、配置ssh keys连通github跟ssh-agent
jenkins+github配置完成后,能够实现在提交pull request或者直接push时,能够将提交的代码拉去一份到服务器本地,并自动merge:但是代码拉去下来了,部署环境的时候却需要输入登 ...
- 创建SSH keys用于添加到Git服务器上
SSH keys SSH key 可以让你在你的电脑和Git服务器之间建立安全的加密连接.先执行以下语句来判断是否已经存在本地公钥: cat ~/.ssh/id_rsa.pub 如果你看到一长串以 s ...
- ubuntun安装ssh,并远程链接服务器操作
SSH是一种以安全.加密方式连接远程主机或服务器的方法.SSH服务器接受从有SSH的客户机的连接,允许操作者象在本地一样地登录系统.你可以用SSH从远程运行shell和X程序. (1)安装SSH服务器 ...
随机推荐
- 权限命令 vi编辑器 命令模式 使用技巧
一.长格式由七部分组成 权限 引用数字 所有者 所属组 文件大小 时间 名称 如 dr-xr-xr-x 5 root root 409 ...
- ORM,Django对数据库的连接和使用
ORM,Django对数据库连接和使用数据 ORM(对象关系映射) 很多语言中的web框架都有这个概念 为什么要有ORM? 写程序离不开数据 新的语法,不需要我们自己写SQL语句 我们按照新的语法写代 ...
- 6月12日 python学习总结 框架
1. 登录功能的实现 1. form表单提交数据的注意事项: 1. 是form不是from,必须要有method和action 2. 所有获取用户输入的表单标签要放在form表单里面,表单标签必须要有 ...
- 解决使用DBeaver连接MySQL时报错-The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
解决使用DBeaver连接MySQL时报错,其实提示很明显. The server time zone value '�й���ʱ��' is unrecognized or represents ...
- Linux磁盘分区管理-LVM回顾
LVM(逻辑分区管理)的几个概念:PV(物理卷),VG(卷组),LV(逻辑卷),PE(物理区域),LE(逻辑区域),其中PV, VG, LV 三者之间的关系如下图 : 物理存储介质:这里指系统的存储设 ...
- struts2学习一:hello struts2及struts2环境配置中遇到的问题
17年下半年的时候简单学了下strus2,好吧,现在已经全忘了,idea也是刚开始用,本来想按教程写个hello struts2,结果,出了以下系列问题. pre:step1-5是我按照百度的教程搭的 ...
- Java并发机制(1)--线程状态与方法(转)
Java并发编程:Thread类的使用 个人总结:参考:博客园-海子-http://www.cnblogs.com/dolphin0520/p/3920357.html 参考:https://blog ...
- 什么是 Busy spin?我们为什么要使用它?
Busy spin 是一种在不释放 CPU 的基础上等待事件的技术.它经常用于避免丢 失 CPU 缓存中的数据(如果线程先暂停,之后在其他 CPU 上运行就会丢失). 所以,如果你的工作要求低延迟,并 ...
- 学习FastDfs(三)
FASTDFS是什么 FastDFS是由国人余庆所开发,其项目地址:https://github.com/happyfish100 FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文 ...
- centos 安装solr6
1.到solr官网下载.tgz 结尾的文件 2.tar zxvf solr*.tgz 解压文件 3.进入solr的解压目录里的bin目录 执行 ./solr start -force 执行成功后 可访 ...