假设一个场景,你手边有一台笔记本电脑,安装的是Windows操作系统,你在云端购买了一台服务器,服务器的操作系统是无图形界面的CentOS,你的实际需求是,在本地的Windows系统上使用VS Code远程操作CentOS,那么VS Code的一款插件remote-SSH将满足你的需求。
一、需要主机密码验证的远程连接服务器
1.在VS Code中安装一个插件Remote-SSH
在VS Code的商店中搜索“Remote-SSH”,
2.在VS Code中配置config文件
打开config文件,此文件居住的路径为C:\Users\dell\.ssh\
在config文件中添加一台主机的相关信息,例如主机的IP地址,端口号,用户名等。
字段 |
含义说明 |
Host |
你给主机起一个有意义的名字,标识这一台主机,例如“sucy_keyuanyun” |
HostName |
主机的IP地址,例如:162.45.20.42 |
Port |
端口号,例如59888 |
User |
用户名,例如:root |
例如
#xxx的科苑云主机
Host sucy_keyuanyun
HostName 192.35.50.42
Port 5877
User root
至此,config文件配置完成。此时可以远程访问服务器了。
这种方式有一个不便之处,每次进入到一个文件夹中,都要求你输入一次主机的密码,就很烦人,但也可以避免。
二、SSH免密登录服务器
基本步骤有3个
- 在本地生成SSH公钥文件(id_rsa.pub)
- 把本地的id_rsa.pub里面的内容拷贝到目标服务器上(你想免密登录的服务器)
- 修改authorized_keys文件的权限为600
在window上打开命令行窗口cmd.exe, 输入命令
#在本地生成SSH公钥id_rsa.pub
ssh-keygen -t rsa
然后敲击3个回车, 就会在指定路径下生成两个文件:一个是私钥文件id_rsa, 另一个是公钥文件id_rsa.pub (pub就是public)
出现下图, 说明秘钥生成成功
在路径(C:\Users\dell/.ssh/)下面查找公钥文件id_rsa.pub
将公钥文件id_rsa.pub中的所有内容拷贝到要免密登录的目标服务器上。在服务器上输入命令
cd ~/.ssh/
#将本地文件id_rsa.pub中的内容全部拷贝到文件authorized_keys中
vim authorized_keys
红色方框中的字符,就粘贴自你的本地公钥文件(id_rsa.pub)中的全部内容
保存文件authorized_keys。
修改文件authorized_keys的权限为600
chmod 600 authorized_keys
此时你在VS Code中再次访问远程主机时,将不再要求你输入主机的密码了。
三、可能的出现的问题
1. 服务器上发现没有.ssh文件夹?
ssh localhost
执行此命令,将在根目录~下面生成.ssh文件夹
2.报错-bash: vim: command not found?
安装一下vim编译器即可
yum install vim