How to use Remote-SSH in Windows
对于不太会使用 Vim 的我来说,在服务器上用 Vim 去修改 nginx.conf 实在有点麻烦,比如没有高亮和格式化。正好想起前不久微软发布了远程开发工具包,其中一个就是今天要介绍的 Remote-SSH。下面是官方对该扩展的定义:
The Remote - SSH extension lets you use any remote machine with a SSH server as your development environment. This can greatly simplify development and troubleshooting in a wide variety of situations.
因此用来修改 nginx.conf 也是符合其目标的。
执行环境
- Windows 10
- Powershell Core 6.2.0
- Visual Studio Code Insiders:因为 Remote-SSH 还在 Preview 阶段,只能开发版的 VSCode 中使用。
- 远程 Linux 主机
使用方法
在 Remote-SSH 扩展的介绍页面下其实是有一个快速开始文档的,简单来说就是在成功安装该扩展之后,需要配置服务端和本地客户端的环境。
在服务器上安装 SSH 服务
同样有文档:
Debian / Ubuntu
Run sudo apt-get install openssh-server
RHEL / Fedora / CentOS
Run sudo yum install openssh-server && sudo systemctl start sshd.service && sudo systemctl enable sshd.service
本地连接远程主机
配置基于 SSH 密钥的身份验证
自定义 SSH 密钥文件名称,使用你自己定义的名称替代
id_rsa-remote-ssh。ssh-keygen -t rsa -b 4096 -f "HOME\.ssh\id_rsa-remote-ssh"
编辑 SSH config 文件,添加以下代码。
Host name-of-ssh-host-here
HostName your-fqdn-or-ip-goes-here
User your-user-name-on-host
IdentityFile ~/.ssh/id_rsa_remote-ssh
Host 仅仅是远程服务器主机的名称,我取的是 CentOS;HostName 是你的远程服务器 IP 地址;User 是登录用户名称,比如
root;IdentityFile 则是私有密钥的相对路径,也可以是绝对路径。将本地的
id_rsa-remote-ssh.pub的内容追加到远程服务器的authorized_keys文件里。# 将`name-of-ssh-host-here`替换成你第二步里面的Host后面的值即可,这里可以用单引号或者双引号
$REMOTEHOST='name-of-ssh-host-here' # 这里一定要使用双引号
$PATHOFIDENTITYFILE="$HOME\.ssh\id_rsa-remote-ssh.pub" # scp 是 linux 系统下基于 SSH 登陆进行安全的远程文件拷贝命令。这里把本地的公开密钥复制到服务器端的`~/tmp.pub`中。该命令运行之后需要输入服务器登录密码。
scp $PATHOFIDENTITYFILE "$REMOTEHOST`:~/tmp.pub" # 通过 SSH 向服务器执行以下一组命令,执行成功后本地的密钥就被追加到服务器的`~/.ssh/authorized_keys`文件里。
ssh $REMOTEHOST "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
以上是初次添加公钥时需要对
~/.ssh设置了权限。以后再添加其他机器的公钥就不需要执行chmod操作了,直接将公钥追加到authorized_keys文件即可。ssh $REMOTEHOST "cat ~/tmp.pub >> ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
VSCode 下按下
F1调起所有命令面板,运行Remote-SSH: Connect to Host...选择你上一步配置好的主机,回车连接即可。
遇到的问题
在使用方法章节的 1.3 中执行
scp和ssh命令时可能会遇到Permission denied的问题。把 Powershell 以管理员身份运行也报同样的错误。请执行以下命令,看看是否存在多个相同命名的可执行文件。where.exe scp # 我的输出:
# C:\Windows\System32\OpenSSH\scp.exe
# D:\Scoop\shims\scp.exe where.exe ssh
# 我的输出:
# C:\Windows\System32\OpenSSH\ssh.exe
# D:\Scoop\shims\ssh.exe
如果存在,那么优先或默认会使用前一个可执行文件(
System32/OpenSSH下的scp),结果我们已经知道,会报“权限不足”的错误。当我使用后一个可执行文件(Scoop/shims下的scp)时,竟然成功了。解决办法有两种:
使用
scp时,把路径打全。ssh同理。D:\scoop\shims\scp.exe $PATHOFIDENTITYFILE "$REMOTEHOST`:~/tmp.pub"
把系统环境变量
PATH里的C:\Windows\System32\OpenSSH删除。
How to use Remote-SSH in Windows的更多相关文章
- windows 10使用vscode进行远程代码开发 | tutorial to use vscode for remote development using ssh on windows
本文首发于个人博客https://kezunlin.me/post/c93b6ba6/,欢迎阅读最新内容! tutorial to use vscode for remote development ...
- Java ssh 访问windows/Linux
Java ssh 访问windows/Linux 工作中遇到的问题: Java code运行在一台机器上,需要远程到linux的机器同时执行多种命令.原来采用的方法是直接调用ssh命令或者调用pli ...
- Jenkins踩坑系列--你试过linux主机ssh登录windows,启动java进程吗,来试试吧
一.问题概述 在一个多月前,组长让我研究下持续集成.我很自然地选择了jenkins.当时,(包括现在也是),部分服务器用的是windows主机. 我当时想了想,如果我把jenkins装在windows ...
- VS Code Remote SSH设置
本文翻译自:5 Steps: Setup VS Code for Remote Development via SSH from Windows to Linux system 5个步骤:设置VS代码 ...
- The remote SSH server rejected X11 forwarding request
两台相同的虚拟机,一台没有错误,一个经常出现警告,内容如下所示: The remote SSH server rejected X11 forwarding request 找了很多方法,最后发现是安 ...
- How to configure ODBC DSN in Client to access remote DB2 for Windows
How to configure ODBC DSN in Client to access remote DB2 for Windows MA Gen feng (Guangdong Unito ...
- Xshell报错“The remote SSH server rejected X11 forwarding request.”
Xshell报错“The remote SSH server rejected X11 forwarding request.” 2012年12月17日 ⁄ Linux⁄ 共 218字 ⁄ 字号 小 ...
- Xshell 连接虚拟机出现 "The remote SSH server rejected X11 forwarding request"
1. 描述 虚拟机:VirtualBox Linux: centOS7 解决了 centOS7在VirtualBox中装好后的网络连接问题 后,用 Xshell 连接服务器时出现下面情况: 2. ss ...
- 解决 Xshell 连接出现 The remote SSH server rejected X11 forwarding request 问题
问题描述 使用 Xshell 5 首次连接虚拟机 CentOS 7.6 出现这样的提示: WARNING! The remote SSH server rejected X11 forwarding ...
- 解决"The remote SSH server rejected X11 forwarding request"问题
今天突然想起来好久没有登录我的vps了,于是下载了xshell,填入地址登录后,看到提示"WARNING! The remote SSH server rejected X11 forwar ...
随机推荐
- WebAssembly编译
环境:centos 7.9 1.准备环境 sudo yum install docker sudo systemctl start docker.service sudo docker pull tr ...
- 细说string和stringbuffer
========================================================================================= 在我看来,学习jav ...
- Bootstrap 弹出表单
- chmod 权限-rw-r--r--表示什么含义
感谢原文作者:bugcoder321 原文链接:https://blog.csdn.net/li_canhui/article/details/89452134 在linux中,有时候可以看到一个文件 ...
- Android SDK:Android standard develop kits 安卓开发的工具集
目前主流的安卓开发工具: 1.Adnroid-Adt-bundle SDK Manager.exe: Tools(安卓的开发小工具) 各种安卓版本 Extras 额外的开发包 在线更新/安装的安卓版本 ...
- 模仿UIApplication单例
要求:程序一启动就创建创建对象.创建的对象只能通过share的⽅方式获取对象.不能够进行alloc 操作,当执⾏行alloc时, 程序发生崩溃 1.程序一启动的时候就创建对象.当类被加载到内存的时候就 ...
- docker平时使用异常记录
GPU主机重启后,启动使用GPU的容器报错 docker: Error response from daemon: Unknown runtime specified nvidia. 解决办法:修改/ ...
- Java中md5摘要算法的几种方法
public class MD5_Test { public static String md5_1(String oldStr) { char hexDigits[] = { '0', '1', ' ...
- Feign 动态URL 解决记录
Feign中使用动态URL请求 (应当是spring-cloud-starter-openfeign,不知道和一般的feign有何差别) 在spring项目下,假设有这样个Feign的消费接口,原来写 ...
- SpringBoot树获取方法总结
最近项目中有需要获取全国行政区划省-市-区县-乡镇.街道办的树状结构数据,现将自己获取树的方法总结如下,有不到之处,敬请批评指正! 一.全国行政区划数据的整理以及获取 获取地址:https://pan ...