vscode利用remote-ssh免密连接服务器

打印 上一主题 下一主题

主题 778|帖子 778|积分 2334


你还在利用XShell、Hyper、FinalShell等等SSH客户端软件吗,作为前端的我们,一直在用的功能强大的开发工具vscode,早已实现SSH连接功能(借助官方提供的插件)。而且更加好用,可以直接打开服务器上的文件,直接在vscode中修改、保存。
按照下面的步调安装配置,去发现新大陆吧!
安装remote-ssh插件


新建ssh连接


  • 点击长途资源管理器、右上角切换到长途(隧道/ssh)、新建长途:

  • 在窗口上方弹出的命令框中输入:ssh name@ip,name是你服务器的用户名,假如没有创建用户则填root,ip是你的服务器ip地址(例如:ssh root@192.168.1.1):

  • 回车后会弹出选择更新配置文件,点击第一个路径,会在本地电脑对应目录(/User/xxx/.ssh)下自动生成一个config文件:

  • 回车点击打开配置,会打开生成的config文件:


    上面的每个字段代表的含义:
  1. Host 服务器别名,可以自定义,默认是ip地址
  2. HostName 服务器IP地址
  3. Port 端口号(端口可以不指定,默认都是22)
  4. user 填写登录使用的用户名,我这就是root
  5. #编辑完成后保存退出
复制代码

  • 在 config 文件配置完成并保存后,在VSCode的长途资源管理器中已经出现刚配置的长途服务器,此时点击红框按钮连接即可

    此时没有不测的话就可以连接上了长途服务器了。
配置免密连接

上面配置完后,就可以利用了,但有个题目就是每次连接都需要输入密码,怎样免密连接呢?一台呆板想要免密访问其他呆板,需要把自己的公钥内容发送到别的呆板的authorized_keys中去,并在本机config文件中配置私钥文件位置。
免密连接配置流程:

  • 在本机(就是你的电脑本地)生成新的密钥对
利用命令ssh-keygen生成新的密钥对。你可以选择在生成密钥对时为其指定差别的文件名。请注意,-f 后的id_rsa_linux 和 id_rsa_windows 只是示例文件名,你可以根据需要选择其他文件名。
  1. # 本机为 Mac 或 Linux,请使用命令:
  2. ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_linux
  3. # 本机为 Windows,请使用命令:
  4. ssh-keygen -t rsa -b 2048 -f C:\Users\YourUsername\.ssh\id_rsa_windows
复制代码
输入命令后一路回车,不消填写任何内容:

体系会在你指定的路径(本例子为 /Users/YourUsername/.ssh)下生成两个文件,分别是id_rsa_linux.pub和id_rsa_linux,前者为生成的公钥,后者为私钥。

  • 添加公钥到长途服务器
将生成的公钥( id_rsa_linux.pub的内容)添加到你长途服务器的 authorized_keys 文件中,以免密连接。
(1) 若你本机是Windows
手动复制公钥文件 (id_rsa_linux.pub) 的内容,然后登录到长途服务器,并将内容粘贴到 authorized_keys 文件的最下面一行。如下是我生成的id_rsa_linux.pub文件内容:
  1. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDebsGnaUFOS0P1F3MqAY6NXUwOv4mspwVzr
复制代码
在长途服务器上,authorized_keys 文件通常存储在用户的 .ssh 目录中。详细路径大概为 ~/.ssh/authorized_keys。
假如你的.ssh目录或者 authorized_keys 文件不存在,你可以在服务器终端利用以下命令创建它:
  1. # 创建目录
  2. mkdir ~/.ssh
  3. # 进入目录
  4. cd ~/.ssh
  5. # 创建 authorized_keys 文件
  6. touch authorized_keys
  7. # 打开 authorized_keys 文件,并将你的公钥内容粘贴到其中
  8. vim authorized_keys
  9. # 保存并关闭文本编辑器。
复制代码
(2)假如你本机是MacLinux
ssh-copy-id 命令通常用于将你的公钥复制添加到长途服务器的 authorized_keys 文件中。-i 选项用于指定身份文件(即你的公钥文件)。在本机执行如下命令:
  1. # 1. 输入命令:
  2. ssh-copy-id -i id_rsa_linux.pub name@ip
  3. # 2. 输入密码并回车,公钥内容就添加到服务器authorized_keys文件中了
复制代码
确保公钥文件 (id_rsa_linux.pub) 在本地呆板上的精确位置,并且你有读取该密钥的权限。同时,确保长途服务器上的用户 有一个 .ssh 目录,并且 authorized_keys 文件有精确的权限(通常是目录权限为 700,authorized_keys 文件权限为 600)。

  • 配置 SSH 客户端:
将添加公钥到长途服务器后,最后一步便是配置你的主机。
打开你的 SSH 客户端(本机)配置文件(也就是前面生成的config文件,一般在/Users/YourUsername/.ssh/config),添加配置(IdentityFile 私钥文件路径),以指定利用哪个私钥文件。
  1. Host 192.168.1.1
  2.   HostName 192.168.1.1
  3.   User root
  4.   IdentityFile /Users/zhangqdmacmini/.ssh/id_rsa_linux
复制代码
这样,当你利用 ssh 连接服务器时,SSH 客户端将自动选择相应的私钥文件,就可以实现免密登录了。
我是前端蜗牛君

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表