在windows中使用wsl时,每次启动wsl后发现其ip都会改变,这样的话如果想通过vscode的Remote-SSH插件打开代码编辑器,就需要手动更新ssh配置文件,极为不便,所以考虑使用一种优雅的方式,在每次启动wsl后,自动执行一个shell脚本,该脚本可以获取ip地址,并更新ssh配置文件,达到每次启动wsl后,自动同步ip的功能。
#!/bin/bash
# Define the Windows username and SSH config path
# xxx为你windows下的用户名
windows_username="xxx"
windows_ssh_config_path="/mnt/c/Users/$windows_username/.ssh/config"
# Get the WSL IP address
wsl_ip=$(hostname -I | awk '{print $1}')
# Update the SSH config file on Windows
windows_ssh_config_path_wsl=$(wslpath -w $windows_ssh_config_path)
# Use PowerShell to update the SSH config file
powershell -Command "Add-Content -Path '$windows_ssh_config_path_wsl' -Value 'Host $wsl_ip\n HostName $wsl_ip'"
echo "SSH config updated with WSL IP address: $wsl_ip"
3.使用编辑器(例如vim),打开~/.bashrc文件,例如:vim ~/.bashrc,在该文件的最后一行添加sh脚本的路径,注意不要加‘.’,例如我这里的写法如下:
4.然后退出保存,使用 source ~/.bashrc更新source文件。然后关闭wsl窗口,重启即可。