linux/wsl_检查已安装的软件包/ssh服务检查/利用windows端的vscode来编辑wsl_linux子系统中的文件/wsl ssh连接配置(kali-linux wsl)为例

reference

windows可以直接在cmd/powershell内直接通过wslbash调用wsl终端

下面是其他形式连接wsl的方式


vscode+remote-wsl插件:

remote-wsl

这是最简单的VSCode链接wsl的方式
在使用这种方式连接的时候,需要为wsl安装extension;windows上的vscode插件默认不可用
在这里插入图片描述

后面将会介绍到,您可以使用remote-ssh插件,也能够连接的wsl

(右键connect)在这里插入图片描述
在这里插入图片描述

vscode_wsl窗口:

在这里插入图片描述

wsl+code 命令

在这里插入图片描述在这里插入图片描述

通用ssh连接wsl 配置

  • 其实windows可以直接连接到wsl
  • 不过某些时候可以用到(比如vscode连接,虽然有相应插件,但是可以整合到remote ssh)

检查现有的软件包(apt)

apt list 方法

  • 对于较新(不太老旧)版本的发新版,可以使用apt
  • sudo apt list 可以获取(源/库)所有包列表(包括未安装的)
  • sudo apt list --installed可以获取已经安装的包列表
# cxxu @ cxxuAli in ~/cppCodes on git:master o [11:14:18] C:130
$ sudo apt list |wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

76631

# cxxu @ cxxuAli in ~/cppCodes on git:master o [11:15:13]
$ sudo apt list --installed |wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

1057
apt 常用命令
apt-get
  • 如果没有apt命令,但是又apt-get您可以先安装apt工具,让后再使用上述方法操作
  • 可以查看到软件的版本信息
  • 字段的大概含义参考dpkg-query -l
    在这里插入图片描述

在这里插入图片描述

  • sudo apt-get install apt
关于man <searchStr>命令得到的结果
  • 即使您的linux没有安装某个软件包,但是还是可能从man中查询到用法
  • 或者说,man命令返回的消息不依赖于已安装的包,而在于软件源那里下载过来的信息(个人猜测可能是apt[-get] update 所拉取到的信息)

dpkg --list 方法(for debian series)

比较成熟的方法 dpkg

  • dpkg --list
 dpkg-query actions
              See dpkg-query(1) for more information about the following actions.

              -l, --list package-name-pattern...
                  List packages matching given pattern.
              -s, --status package-name...
                  Report status of specified package.
              -L, --listfiles package-name...
                  List files installed to your system from package-name.
              -S, --search filename-search-pattern...
                  Search for a filename from installed packages.
              -p, --print-avail package-name...
                  Display details about package-name, as found in
                  /var/lib/dpkg/available. Users of APT-based frontends
                  should use apt-cache show package-name instead.

dpkg-query 方法

  dpkg-query

  A tool that shows information about installed packages.
  More information: https://manpages.debian.org/latest/dpkg/dpkg-query.1.html.

  - List all installed packages:
    dpkg-query -l

  - List installed packages matching a pattern:
    dpkg-query -l 'pattern'

  - List all files installed by a package:
    dpkg-query -L package_name

  - Show information about a package:
    dpkg-query -s package_name
  • 可以查看到相关主题包的状态(详见man dpkg-query)
  • dpkg-query -l '*ssh*'
    • 正则模式需要用引号(单引号)括起来
      在这里插入图片描述
dpkg 管理工具
DESCRIPTION
       dpkg is a tool to install, build, remove and manage Debian packages.  The  primary  and  more  user-
       friendly  front-end  for  dpkg  is  aptitude(1). dpkg itself is controlled entirely via command line
       parameters, which consist of exactly one action and zero or more options. The action-parameter tells
       dpkg what to do and options control the behavior of the action in some way.
检查ssh是否安装
  • sudo apt list --installed|grep ssh
  • sudo dpkg --list|grep ssh
$ sudo apt list --installed|grep ssh

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

openssh-client/bionic-updates,now 1:7.6p1-4ubuntu0.6 amd64 [installed]
openssh-server/bionic-updates,now 1:7.6p1-4ubuntu0.6 amd64 [installed]
openssh-sftp-server/bionic-updates,now 1:7.6p1-4ubuntu0.6 amd64 [installed,automatic]
ssh/bionic-updates,bionic-updates,now 1:7.6p1-4ubuntu0.6 all [installed]
ssh-import-id/bionic-updates,bionic-updates,now 5.7-0ubuntu1.1 all [installed,automatic]
  • 在确保软件源(/etc/apt/sources.list)中的源可用下执行

  • sudo apt install openssh-server

  • 对于老版本的ubuntu alias apt=apt-get

尝试启动ssh

如果已安装ssh,可以尝试执行
sudo service ssh start
在这里插入图片描述

检查ssh相关进程

sudo ps -e |grep ssh

cxxu_kali➜~» sudo ps -e |grep ssh                                                                            [12:54:33]
  676 ?        00:00:00 sshd
重装ssh服务(optional)

自带的openssh 可能有点问题,如果需要卸载重新装(ubuntu/kali),执行如下命令

sudo apt remove openssh-server
sudo apt install openssh-server

编辑ssh 配置文件

##  编辑ssh 配置文件
sudo vim /etc/ssh/sshd_config
  • 大概在15行/58行附近分别设置PortpasswordAuthentication
    即,在原有的行解开注释(其他需求自行配置)

放行端口22

允许密码登录passwordAuthentication yes

登录root用户/普通用户

  • 登录普通用户至此应该可以
  • 但是root用户(root@hostname)可能需要额外的配置
    • 也可以通过先登录普通用户,然后基于普通用户执行sudo -i等操作进行切换

重启ssh服务

完成配置后,需要重启ssh服务
sudo service ssh restart

注意ssh服务的启动

  • 手动启动ssh 服务,否则vscode 无法通过ssh连接上wsl
    不过这一点,采用wsl插件或许更为方便
  • 幸运的是,您可以设置开启wsl自动启动(在linux中,实现这一点比windows更简单,在linux中开机自启软件和其他一些永久有效配置类似,通过将启动命令写入到开机运行的配置文件中即可,例如,您可以将service sshd start写入到/etc/rc.local中(不存在该文件时创建一个即可)
开机启动ssh
echo "service sshd start" |sudo tee -a /etc/rc.local
## check the result:
cat /etc/rc.local

连接:用户名@主机名的方式

  • 通过输入bash可以看到(用户名@主机名)
    • 在这里插入图片描述
  • 或者命令行查询
    hostname
    whoami
    分别查得主机名和用户名

vscode remote-ssh 插件连接wsl 效果

初次连接需要下载一些服务,这和第一个插件类似
等待时间在3分钟内

wsl中使用code

利用powershell 调出wsl后,键入code,同样可以在本地vscode中编辑文件wsl中的文件

权限问题

保存需要权限的文件时,参看其他解决方案(比如安装插件)
Save as Root in Remote - SSH - Visual Studio Marketplace

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cxxu1375

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值