用ssh实现远程登陆电脑

用ssh实现远程登陆电脑,配合上篇博客提到的Termux可实现手机操作电脑。

用Termux搞个好玩的,用手机操作电脑。具体来说就是实现了从手机上连接到电脑的cmd命令行窗口。借助ssh实现。

电脑安装和开启ssh

安装OpenSSH:按照下面几张图片依次找到设置 - 应用 - 可选功能 - 添加功能

12
13
14

找到OpenSSH服务器和OpenSSH客户端,选择安装(两个都要装)

15

到cmd中输入ssh,若出现下图结果说明客户端安装成功

16

启动SSH服务:以管理员身份运行cmd(否则会出现系统错误),执行命令

net start sshd

出现下图界面即为成功

17

注:可以使用命令

net stop sshd

来关闭SSH。

手机安装SSH并连接到电脑

到Termux下,执行命令

pkg install openssh 

然后可以用命令

ssh username@ip

来连接电脑,其中username是你的电脑的用户名,ip是你的电脑的IP地址。

如何查看自己电脑的IP地址?在电脑命令行中输入

ipconfig

即可找到。例如我的是:

18

第一次连接时会出现如下提示

The authenticity of host 'host (xx.xxx.xx.xx)' can't be established.
RSA key fingerprint is XX:XX:XX......
Are you sure you want to continue connecting (yes/no)?

意思是这个服务器的真实性尚未被证实,它的公钥指纹是XX:XX:XX:…,问你是否要继续连接?输入yes即可,它会将这个公钥加入到自己的列表中,日后就不需要再确认了。

之后会要求你输入密码,输入电脑的开机密码即可。出现下图即为成功。

19

可以输入exit退出SSH,回到原界面。

用Screenfetch测试连接成功

screenfetch可以显示当前运行的设备信息。我们先在电脑上以管理员权限打开powershell,按照如下步骤进行1

  1. 输入 Install-Module -Name windows-screenfetch,回车(输入Y,接受)
  2. 输入 Set-ExecutionPolicy -ExecutionPolicy Unrestricted,回车(输入Y,接受)
  3. 输入 Import-Module windows-screenfetch

输入Screenfetch测试,出现下图界面即为安装成功:

20

我们先将powershell的路径添加到环境变量中:

(1) 新建名为powershell,值为powershell所在文件夹的系统变量:

21

(2) 向系统变量Path中添加%powershell%

22

这样就可以直接在cmd中输入powershell打开powershell,而不用cd到powershell所在的目录,这对于手机操作尤为方便。

铺垫完成,我们下面在手机中使用Screenfetch,来确定自己的确用手机操控打开了电脑。

如果我们没有用ssh连接到电脑,直接在Termux上先使用pkg install screenfetch安装screenfetch(注意这里首字母s是小写,与上面不同),再执行命令screenfetch的话,看到的是安卓机的设备信息:

23

我们执行命令

ssh username@ip

(同样地,username是你的电脑的用户名,ip是你的电脑的IP地址)来连接电脑,然后执行命令

powershell # 进入powershell
Screenfetch # 打开Screenfetch,注意S大写

看到如下界面,说明的确连接到了我们的电脑。

24

后记

连接到电脑就可以干一些好玩的事情了,比如我们在手机上就可以浏览电脑上的文件,也可以用http-server在手机浏览器上看电脑上保存的视频,用cmd跑电脑上的程序。其实就是把电脑当作了一台可供同一局域网中设备访问的服务器。

美中不足的是,我们必须保证电脑和手机都在同一个局域网中,否则SSH无法连接。那能不能不在同一个局域网中依然可以访问呢?是可以的,利用内网穿透技术即可,我现在还没搞,之后搞了的话会在这里再次更新的。