Windows电脑作为ssh服务器的搭建与连接

Windows电脑作为ssh服务器的搭建与连接

Thu Aug 22 2024
tech SSH

用途

轻薄本使用ssh连接游戏本,以借用其4060显卡跑一些深度学习的小项目(有服务器可用,但是因为要跑的也不是什么大模型,作为深度学习代码学习使用而已)。

设备说明

服务端设备为游戏本,Windows11,带有一块4060独立显卡。

客户端设备为轻薄本,Windows10,有一块很差劲的MX250独立显卡。

以下的设置将只争对这2个系统,也许你是2个Win10或者2个Win11,此处系统差异笔者不再做细节讲解,大体类似,摸索摸索就出来了。

软件准备

  • Xftp

  • VScode

  • Anaconda(我默认你既然和我需求一样,会使用Anaconda创建虚拟环境)

服务端开启SSH

设置-系统-可选功能-添加可选功能-查看功能

输入SSH,安装OpenSSH服务器(请注意不是OpenSSH客户端)

安装过程可能稍慢,请耐心等待

安装完成后管理员身份打开PowerShell

  • 开启ssh服务
BASH
1
net start sshd
  • 设置服务自动启动
BASH
1
Set-Service -Name sshd -StartupType 'Automatic'
  • 确认防火墙是否放开
PYTHON
1
Get-NetFirewallRule -Name *ssh*

如果出现OpenSSH-Server-In-TCP,则表示放开

若没有放开,在设置中搜索防火墙,点开Windows Definder防火墙

依次选择高级设置-入站规则

image.png

选择端口后点下一步

image.png

设置22端口

image.png

连接的公钥私密钥对生成

打开客户端终端,输入以下两个命令

PYTHON
1
2
cd .\.ssh\
ssh-keygen -t rsa
  • 提示输入文件名时:
    • 直接回车将使用默认文件名 id_rsa
    • 如果不止一个密钥对,请输入一个其他文件名,如: id_rsa_4060
  • 提示输入密码时:
    • 直接回车,不使用密码(我的选择)。
    • 输入密码再回车。

此时打开客户端的C:/Users/你的用户名/.ssh这个文件夹,里面会有两份文件,一个是id_rsa_4060,另一个是id_rea_4060.pub,前者私钥,后者公钥。

复制id_rea_4060.pub的内容,打开服务端,在C:\Users\你的用户名\.ssh文件夹中看是否有authorized_keys(注意没有后缀)文件,没有的话就创建,把id_rea_4060.pub的内容粘贴进去,有的话就追加在后面。

打开服务端C:\ProgramData\ssh\sshd.config,注意 ProgramData 是隐藏文件夹。

编辑配置文件为:

PLAINTEXT
1
2
3
4
5
6
7
8
确保以下3条没有被注释
PubkeyAuthentication yes # 使用公钥
AuthorizedKeysFile	.ssh/authorized_keys # 公钥位置
PasswordAuthentication no # 免密登录

确保以下2条有注释掉
#Match Group administrators
#  AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

重启服务:

BASH
1
2
net stop sshd
net start sshd

客户端连接

服务端打开命令行,输入ipconfig,看IPV4栏,记住ip地址。

此处还有一个固定IP地址方法,电脑固定IP地址,自行决定是否使用。

客户端打开C:\Users\你的用户名\.ssh\config,键入以下配置

PYTHON
1
2
3
4
5
6
Host 4060
    User 33914  # 你在服务端的用户名,就是服务端的C:\Users\那个用户名
    HostName 144.90.100.144  # 随便写的,你填你的上一步的IP地址
    Port 22
    # 私钥文件位置
    IdentityFile "~/.ssh/id_rsa_4060"

打开VScode-插件,搜索Remote-SSH插件并安装,安装后侧边栏有远程资源管理器,此时应该已经显示你的服务器了,直接连接就行。

连接是免密的,此时连完后了再去下载Python插件在服务器上。

Crtl+J打开终端

image.png

选择Command Prompt即可切换到Anaconda命令行。

如果不行,请在服务端上参考在Windows Terminal中添加Anaconda来完成配置。