VS code 密钥连接 Ubuntu 教程

该文详细介绍了如何通过生成SSH密钥对,使用gitbash或wincmd在Windows环境下,以及通过VScode远程插件设置,实现VScode无密码连接到Ubuntu服务器。关键步骤包括生成密钥对,设置VScode的身份文件,将公钥上传到服务器的authorized_keys文件中,并调整服务器的ssh配置以启用公钥认证。同时,文中提到了权限配置和解决重装系统后的指纹问题。
摘要由CSDN通过智能技术生成

VS code 密钥连接 Ubuntu 教程

只能将公钥上传服务器,将私钥保存至本地

本地
公钥
服务器

生成密钥的方法

  1. 通过git bash

ssh-keygen -t rsa
  1. 通过win cmd

在win下cmd

win ssh-keygen

ssh-keygen.exe -t rsa
# 或者
ssh-keygen.exe -t rsa -C "maosql@vip.com"
# 或者
ssh-keygen -t rsa -C "maosql@vip.com"
  1. 通过bash命令行
ssh-keygen -t rsa

效果

[root@host ~]$ ssh-keygen  <== 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
Enter same passphrase again: <== 再输入一遍密钥锁码
Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

采用以上步骤之一会生成两个文件 id_rsa(私钥) 和 id_rsa.pub(公钥)

VS code 远程插件设置 ssh-key

VS code config

点击 远程资源管理器 点击 SSH TARGETS 栏的配置图标 configure ,选择你目前生效的配置文件,添加上 IdentityFile 这个选项即可。例如:

ServerAliveInterval 60				# 每60秒发送信号用以保持连接

Host xxx.xxx.xxx.xxx
  HostName xxx.xxx.xxx.xxx
  User ubuntu
  IdentityFile ~/.ssh/id_rsa		# 私钥文件的位置

上传公钥文件至服务器

然后在本地下面路径找到这两个文件

# win
C:\Users\user\.ssh

# ubuntu
~/.ssh

id_rsa id_rsa.pub		# 两个文件

然后把其中公钥文件拷贝到服务器~/.ssh/authorized_keys文件中,如果已经存在authorized_keys文件则在尾部添加公钥文件内容,否则就创建authorized_keys文件并复制公钥文件内容

或者也可以通过命令行上传公钥文件至服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip

接着修改服务器的ssh设置文件

修改/etc/ssh/sshd_config文件

sudo vim /etc/ssh/sshd_config

采用AuthorizedKeysFile配置,启用authorized_keys

// 默认 # 注释掉的,后面一串删除改为yes
PermitRootLogin yes   		# 允许 root 账户通过 ssh 登录
RSAAuthentication yes		# 使用 rsa 密钥验证,不过现在已经没有这项命令了
PubkeyAuthentication yes	# 允许 ssh 登录通过 公钥登录
AuthorizedKeysFile    .ssh/authorized_keys	# 公钥认证文件位置

# 你可以把这个选项设置为 no 来关闭密码登录
# PasswordAuthentication yes

重新启动 ssh

systemctl restart sshd.service

坑点

权限问题。权限一定要按照下面来配置,不要想当然的配置成777

# 原因
# sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。

# 用户权限700
chmod 700 /home/username

# .ssh权限
chmod 700 ~/.ssh

# ~/.ssh/authorized_keys权限
chmod 600 ~/.ssh/authorized_keys

试图写入的管道不存在

当服务器重装了系统后, IP 地址不变,再次进行远程连接时即会发生这个报错。观察错误日志可知这是因为服务器的指纹和本地存储的指纹不一致导致的。解决方案也很简单,更换服务器的 IP 地址或者删掉本地的 .ssh/known_hosts 文件即可。

参考

[1]: Win VScode免密登录ubuntu

[2]: ubuntu设置 SSH 通过密钥登录

[3]: VS Code SSH远程连接Ubuntu

[4]: Ubuntu 设置远程密钥登录

[5]: How to Set Up SSH Keys on Debian 9 | DigitalOcean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值