VSCode用ssh连接虚拟机Ubuntu
本文记录自己远程连接虚拟机的过程,便于以后忘了查看相关命令。
SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。
SSH密钥交换
- SSH服务器生成素数G、P、服务器私钥b,并计算得到服务器公钥y=(G^b)%P。
- SSH服务器将素数G、P、服务器公钥y发送给SSH客户端
- SSH客户端生成客户端私钥a,计算得到客户端公钥x=(G^a)%P。
- SSH客户端将客户端公钥x发送给SSH服务器。
- SSH服务器计算得到对称密钥K=(x ^ b)%P,计算得到对称密钥K=(y ^ a)%P,数学定律可以保证SSH服务器和SSH客户端生成的对称密钥相同。
一、Ubuntu安装相关服务
1、apt升级
$ sudo apt update
$ sudo apt upgrade
否则的话可能会出现无法定位软件包的错误
2、Ubuntu安装ssh服务
$ sudo apt-get install openssh-server
3、Ubuntu启动ssh服务,查看ssh服务
$ sudo service ssh start
$ sudo service ssh status
4、Ubuntu ssh服务加入开机启动
$ sudo systemctl enable ssh
5、获取Ubuntu的ip
$ ifconfig
192.168.11.128就是IP地址,后续要用到。
二、VSCode安装插件
1、安装Remote ssh插件
2、配置相关文件
按下F1,输入Remote-SSH,选择Configure SSH Hosts,然后再选择第一个配置文件,并填入对应的主机IP(在Ubuntu中使用ifconfig命令获取)和用户名
3、测试VSCode连接
重启VScode,点击右侧Remote Explorer图标,选择SSH,点击右侧图标连接,最后按照要求输入用户密码即可
可在上方点击New terminal查看是否连接成功
三、配置免密登录
1、查看本机是否安装ssh
> ssh
2、生成公钥和秘钥
> ssh-keygen
一路回车即可。
3、将公钥拷贝到Ubuntu上
生成的秘钥对在C:\Users\YY.ssh中,将公钥的内容拷贝到家目录的.ssh的authorized_keys中
注意,.ssh是隐藏文件夹(Xftp可以在工具->选项->常规中选择显示隐藏文件夹),若是没有.ssh文件夹和authorized_keys文件,需要自己创建
4、重启ssh服务
为了确保连接成功,需要给以下文件权限,并且重启服务
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ sudo systemctl restart sshd
重启VSCode即可免密登录了
Xftp和Xshell连接
Xshell类似,输入名称,主机IP,用户名和密码,即可连接成功
测试发现,用VSCode和xshell同时连接虚拟机没有发生冲突,可同时连接
版权归原作者 m0_48418397 所有, 如有侵权,请联系我们删除。