目录
一、前言
前几天搞到了一台性能不错的台式机,想着把它拿来当作编译服务器用。折腾半天装了个linux系统,各种驱动一打,是真的浪费时间。结果最后发现公司的编译环境在linux系统上跑不起来。当时整个人都裂开了,这种说不出来感觉,就像到嘴的鸭子跑了。
无奈之下又花费几个小时重新格盘装了个windows系统,装上后配置了下远程桌面连接和文件共享。虽然可以实现在本机上编译代码然后远程连接到服务器上编译。搞好后又总感觉缺了点什么,不是很方便,主要还是来回切换人太麻烦了。
几个月前我正好折腾了下wsl上的vscode远程编译,那感觉确实不错。当时就想既然vscode都能实现wsl的远程编译,那么搞下服务器的远程编译应该也不是问题,结果在插件市场一搜还真有。只不过需要服务器具有ssh远程连接的功能,至于怎么在vscode上远程编译后面再说。今天我们就一起来看看怎么才能搞一下windows服务器的ssh连接。
二、启用windows的ssh功能
Windows系统其实提供了ssh的拓展功能,只不过默认没有打开。就像wsl一样,这些功能受众很小,一般人根本用不上它。所以我们需要手动去打开它,服务器和客户端上都要去打开,不然用不了。也可以通过第三方软件去实现这个功能,客户端用xshell
,服务器用freesshd
。不过这些都是需要安装第三方软件的,不靠谱。我们选择的是windows内置的openssh
的功能。
1、打开Windows系统设置,点击应用选项
2、点击应用和功能选项卡里可选功能
3、点击添加功能,这没什么好说的。按照上面点就行了
4、搜索ssh,会出现以下两个结果。一般情况下服务器只要安装OpenSSH服务器,客户端那就安装OpenSSH客户端即可。不过我这里建议大家两个都装上,至少在服务器上要两个都装上(为什么
?后面再说)。客户端上那无所谓,装一个就行了。安装的时间比较慢,稍等便可即可。
三、配置服务自启动
1、服务器上两个软件都安装好后需要配置下服务自启动,以便每次重启电脑都能自动启动服务。在服务里,找到这个东西OpenSSH SSH Server
2、点击属性设置,将启动类型设置成自动启动,并且点击启动按钮,立即启动服务。
四、回环连接测试
1、打开PowerShell或者CMD,输入 ssh [email protected]
测试本地是否可以正常连接,这里用的就是上面第4点安装的ssh客户端去连接自己的ssh服务器。回车后,输入yes
!。(格式:ssh 用户名@IP地址
),我这里是本地所以直接填的网卡回环地址。客户机如果想要连接服务器的话需要填写服务器实际的ip地址,填127.0.0.1是没用的!!!
2、输入用户密码,这里输入的密码不可见,输完直接回车即可
3、正常的话PowerShell界面会刷新,变成下面的样子。以前玩过linux上ssh连接的同学,一看这个界面就知道这玩意已经是连接上了服务器了,自动定位到了登录用户的家目录。到这一步就说明服务器没什么问题了,后面就是需要使用客户端去进行远端连接。
五、关闭防火墙
1、点击系统和安全
2、点击Windows Defender防火墙
3、我这里的服务器只在个人的局域网使用,图个简单,就直接把防火墙关了。真正的网络服务器可千万别这么干。有需要的同学,了解下端口放行。我们ssh服务默认用到了22端口。配置下出入站放行22端口就行了。
4、不多比比,直接关掉
六、远端连接
6.1、密码连接
和上面本地回环测试差不多,在客户端机器上,输入连接命令,不过需要把ip地址换成服务器实际的ip地址。我这里给服务器配置的是固定ip192.168.1.100。只要两台机器在一个局域网内,同时服务器端端口被放行或者防火墙被关闭,是可以直接输入密码连接成功的。
6.2、证书连接
一般情况下来说密码连接应该也就够用了,不过密码连接还有一点不太好的地方就是每次重新连接都必须输一次密码。像我这么懒的人每次都要输密码那简直不能忍,太麻烦了。密码要是复杂的话还要输半天,搞不好就输错了还得重来。
ssh还有一种连接方式就是证书连接,证书连接相比密码登录要更安全点。最重要的是配置一次,就可以实现终身免密登录,对于懒癌患者那就是香到爆炸。
1、首先需要在客户端上生成密钥,在客户端的PowerShell
中输入ssh-keygen -t rsa -C “192.168.1.100 openssh”,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。我这里也是随便写的,然后什么都不要管,什么都不要输入,一路回车。
2、命令执行完毕后会在C:\Users\CX\.ssh
下生成两个文件,分别为id_rsa
(私钥)、id_rsa.pub
(公钥)
3、把id_rsa.pub
公钥拷贝到Windows服务器中需要登陆的用户名下的.ssh
文件夹中C:\Users\CX\.ssh
(这是个隐藏文件夹,需要打开显示隐藏文件的功能才行,没有的话可以新建一个),然后将id_rsa.pub
文件改名为改名为authorized_keys
。
4、最后一步,非常重要!非常重要!非常重要!
,重要的是说三遍。下面写的几点搞错一个客户端都连接不上。
(1)打开C:\ProgramData\ssh
文件夹下的sshd_config
文件。检查PubkeyAuthentication
值是不是yes
。
(2)将AuthorizedKeysFile
值改为.ssh/authorized_keys
(3)把最后两行注释掉,一定要注释!!!!!
(4)服务器控制台输入Restart-Service sshd
,重启sshd服务
5、输入ssh -i C:\Users\CX\.ssh\id_rsa [email protected]
回车,输入yes。格式:ssh -i 私钥地址
用户名
@IP地址
。私钥就是上面生成的那个,没有后缀的文件。这样就可以实现免密登录,把这条命令保存为批处理文件,每次只要运行一下就会自动连接上了。
七、编译一下试试
定位到开发包路径。编译OK,远程编译环境搭建完成。