# ssh 简单教程

## ssh 配置免密码登录服务器

### 生成密钥对

执行`ssh-keygen -t ed25519 -C "zwyyy456@hotmail.com"`以生成密钥对，存放在`~/.ssh`文件夹下，`id_ed25519.pub`为公钥，`id_ed25519`为私钥。

### 上传公钥到服务器

这里以我的 N1 为例，执行`ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.6.217`和`ssh-copy-id -i ~/.ssh/id_ed25519.pub zwyyy@192.168.6.217`，将公钥上传到服务器，`root`和`zwyyy`分别是两个用户。

## 配置局域网 ssh 连接到 wsl

### hyper-v 创建虚拟交换机

打开 hyper-v 管理器，选择**虚拟交换机管理器**，选择创建**外部**类型的虚拟交换机，这里命名为`wsl_ssh`。

### win11 上新建 wsl 配置文件

```sh
cd ~
New-Item .wslconfig
nvim .wslconfig
```
修改配置文件内容为
```toml
[wsl2]
networkingMode=bridged
vmSwitch=wsl_ssh # 这里为你创建的虚拟交换机名称
ipv6=true
```

之后执行`wsl --shutdown`再启动`wsl`，就会发现`ip`地址为电脑本身的 ip 了。

### openwrt 上固定电脑的 ip
进入**openwrt**的管理界面，点击`网络->DHCP/DNS`，选择静态地址分配，固定 windows 笔记本的 ip

### 启用 wsl 上的 ssh
执行`sudo nvim /etc/ssh/sshd_config`，将`#port 22`修改为`port 2222`，取消注释`#PasswordAuthentication yes`和`#PubekyAuthentcation yes`，重启**ssh**服务，执行`sudo service ssh restart`。

### win11 设置端口转发
参照该[链接](https://blog.csdn.net/lcuwb/article/details/82885920)

之后同一局域网的 mac 执行`ssh -p 2222 zwyyy456@192.168.6.209`，即可连接到**wsl**。

