Words etch cherished moments.
OG

vscode远程连接服务器

1,817 words, 5 min read
2018/08/10 AM
804 views

#vscode远程连接服务器

这里我使用的是服务器是 腾讯云Ubuntu 18.04

我们所使用的腾讯云服务器默认没有开启 root 用户,我们需要开启 root 用户

Ubuntu系统的默认用户名是ubuntu,初始化后默认不设置root帐户和密码。需要在设置中开启允许root用户登录。

#登录服务器设置 root 密码

  1. 使用 ubuntu 帐户登录云服务器。
  2. 设置 root 密码。
          
  • 1
sudo passwd root
  1. 输入root用户密码,按 Enter

  2. 重复输入root用户密码,按 Enter

    返回信息表示 root 密码设置成功

          
  • 1
$ passwd: password updated successfully
  1. 修改 sshd_config 配置
          
  • 1
sudo vi /etc/ssh/sshd_config
  1. 找到 #Authentication,按o切换为插入模式(左下角会出现 INSERT),将 PermitRootLogin 前的 # 删除,并将参数prohibit-password修改为 yes
ssh
ssh
  1. ESC退出插入模式,在其后面输入wq,保存

  2. 重启 ssh 服务

          
  • 1
sudo service ssh restart

#vscode 下载 remote ssh 插件

  1. 打开应用商店,按SHIFT + CTRL + X或者直接点击左边应用商店

  2. 搜索 remote-ssh 并点击 install

  3. 安装完成后左侧会出现一个电脑标识,点击侧边栏 + 添加一个新的 ssh 地址

          
  • 1
  • 2
# 连接地址 ssh root@your-server-hostip -A # 或者 ssh root@你的域名 -A
  1. 输入完成后会需要输入密码进行连接,第一次连接会弹出一个时候继续连接的选项,不用管,直接回车,然后回再次弹出,需要输入腾讯云服务器登录的密码

  2. 这样就实现了远程登录服务器了,这样会比在浏览器上使用命令行方便的多

思考一下,每次登录都需要输入密码这样是不是很方便,接下来我们需要实现免密登录

#免密登录原理

  1. 在本机上生成公钥私钥。
  2. 将公钥拷贝给服务器中的 authorized_keys 文件中(authorized_keys 表示授权密钥)
  3. 本机向服务器发送一个连接请求。
  4. 服务器得到本机的信息后,在 authorized_key 中查找,如果有相应的用户名和 IP,则随机生成一个字符串,并用本机(也就是 authorized_keys 中授权过的)的公钥加密,发送给本机。
  5. 本机得到服务器发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给服务器。服务器进行和生成的对比,如果一致,则允许免登录。 总之:A 要免密码登录到 B,B 首先要拥有 A 的公钥,然后 B 要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。

#本机和服务器生成公钥私钥

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
# 生成公钥私钥,期间会出现3次要输入的情况,可以直接忽视,回车就行 ssh-keygen # 生成的密钥默认在当前用户的 .ssh 文件夹中 # 在本地环境中找到 id_rsa.pub 文件打开复制公钥

#使用 vscode 远程连接需要免密登录的服务器

登录成功后需要选择文件夹,这里我选择 .ssh 文件夹 找到里面的 authorized_keys文件

并把刚才复制的本机公钥复制到authorized_keys文件中,这样再次使用 vscode 连接服务器就不需要输入密码了

Creative Commons BY-NC 4.0
https://zhangwurui.cn/article/19
0/0comments
Guest
Start the discussion...
Be the first to comment