WSL2 Ubuntu固定IP,开机启动SSH

1. 设置SSH

安装wsl2 Ubuntu,后无法启动SSH

1.1 出现的错误包括:

a. start-stop-daemon: unable to set gid to 0 (Operation not permitted)
b. * Starting OpenBSD Secure Shell server sshd sshd: no hostkeys available – exiting.
c. * Starting OpenBSD Secure Shell server sshd [ Fail ]

1.2 解决方案

第一步:修改/etc/ssh/sshd_config文件

Port 22 将前面的#去掉,开启22端口
LinstenAddress 0.0.0.0 将前面的#去掉,监听所有的ip
PasswordAuthentication yes 可以使用账号密码进行登录
PermitRootLogin yes 允许root登录

第二步:新增密钥文件

下述命令会在/etc/ssh下新增6个密钥文件,如果该目录下存在此6个文件,直接第三步

ssh_host_ecdsa_key, ssh_host_ecdsa_key.pub, ssh_host_ed25519_key, ssh_host_ed25519_key.pub, ssh_host_rsa_key, ssh_host_rsa_key.pub

cd /etc/ssh
sudo ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key
sudo ssh-keygen -t ed25519 -b 256 -f /etc/ssh/ssh_host_ed25519_key

第三步:重启ssh

sudo service ssh restart

第四步:密码重置

通过root账户,使用ssh连接Ubuntu,被拒绝

root密码正确也要重置密码,重置密码时,可以是原密码

通过

sudo passwd root

重置密码

2. 固定IP,自动启动SSH

该脚本能够固定ip,同时能够上网,能够启动ssh。
将脚本放入启动文件夹,使得Windows系统开机会自动设置wsl固定ip,开启ssh。

wsl.bat 文件,内容如下,运行该脚本后 UbuntuIp: 172.18.54.10
@ECHO OFF
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&exit
setlocal enabledelayedexpansion
wsl --shutdown ubuntu
wsl -u root service ssh start
if !errorlevel! equ 0 (
    wsl -u root ip addr | findstr "172.18.54.10" > nul
    if !errorlevel! equ 0 (
        echo wsl ip has set: 172.18.54.10
    ) else (
        wsl -u root ip addr add 172.18.54.10/16 broadcast 172.18.54.0 dev eth0 label eth0:1
        echo set wsl ip success: 172.18.54.10
    )
    ipconfig | findstr "172.18.54.1" > nul
    if !errorlevel! equ 0 (
        echo windows ip has set: 172.18.54.1
    ) else (
        netsh interface ip add address "vEthernet (WSL)" 172.18.54.1 255.255.0.0
        echo set windows ip success: 172.18.54.1
    )
)
ping 172.18.54.10
pause

3. 参考资料

### 如何在 WSL Ubuntu 上安装和配置 FileZilla #### 安装 FileZilla 为了在 WSLUbuntu 中安装 FileZilla,可以通过官方仓库来获取最新版本: ```bash sudo apt update sudo apt install filezilla ``` 这会自动处理所有依赖关系并完成安装过程。 #### 配置 SSH 进行安全文件传输 对于通过 SSH 协议的安全文件传输,在服务器端(即 WSL2 中的 Ubuntu)需确保 OpenSSH 已经被正确设置。通常情况下,默认已经预装了 openssh-client 和 openssh-server 软件包。如果没有,则可通过如下命令安装它们: ```bash sudo apt install openssh-client openssh-server ``` 启动并启用 SSH 服务以便于每次开机自启: ```bash sudo systemctl start ssh sudo systemctl enable ssh ``` 验证 SSH 服务状态以确保其正常运行: ```bash systemctl status ssh ``` #### 测试网络连通性 在尝试建立连接之前,建议先测试主机间的网络可达性。可以从 WSL 终端向 Windows 主机发送 ICMP 请求来进行简单检测: ```bash ping $(hostname -I | awk '{print $1}') ``` 如果无法成功 Ping 通目标 IP 地址,可能是由于防火墙阻止所致。此时可以在 Windows 系统中暂时禁用防火墙或创建例外规则允许特定端口通信[^4]。 #### 使用 FileZilla Client 建立 SFTP/SCP 连接 一旦上述准备工作就绪,就可以利用已安装好的 FileZilla GUI 应用来发起针对本地 Linux 实例上的远程登录请求。具体操作步骤如下所示: - 打开 FileZilla 客户端程序; - 输入正确的 Hostname/IP Address (通常是 `localhost` 或者实际分配给 WSL2 VM 的 IPv4 地址); - 提供有效的用户名及密码用于身份认证; - 设置 Port Number 默认为 22 对应标准 SSH/SFTP 服务监听端口号; - 尝试点击 "Quickconnect" 开始会话。 这样便能够在两个操作系统间高效地管理共享资源以及执行数据交换任务了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值