2020-11-30 ssh、scp、xming、putty、windows下的linux子系统

终于又到工作日了,工作有时候是个保护伞,可以保护我执行自己的计划而不被干扰。当然如果仅以此来逃避责任,这就不是保护伞了,而是借口,但再深入一层,这个责任也确实得是一种责任,深入到最后就是价值判断的问题,想多了脑仁疼。这世上有多少好事是被以假乱真给坏了的。
今天启动ubuntu,在没有登录的情况下尝试用teamviewer远控,但总连不上。手工登录ubuntu后再远控,就可以连上了。要是放在正式部署的环境下,这样的远控意义何在呢?teamviewer肯定不限于此,遂一番度娘,虽然还是没有修正这个问题,但找到了替代方案,且开了眼界满足了好奇心。
先说一个网上找到的解决方案:

sudo gedit /etc/gdm3/custom.conf
将WaylandEnable=false这行注释取消,重启即可

WaylandEnable上方有一行注释:# Uncomment the line below to force the login screen to use Xorg,看来导致系统重启后teamviewer无法远控的原因是ubuntu的登录会话中默认接受使用wayland协议的x server进行连接,wayland相比xorg更新,ubuntu比较激进,尝试新的东西,但wayland目前还有很多应用不支持,teamviewer显然包括在不支持之列,换成xorg就可以了。这里涉及到一些linux图形界面的知识,包括x、x client、x server,GNOME、GDM等等,大概了解一下,感兴趣的可以看这篇文章。只要知道一点就够了,x server是发起远控的机器上运行的程序,x client是被远控的ubuntu上运行的程序(是不是和我们日常对客户端/服务器的理解正好相反),teamviewer目前不支持wayland的x server协议,ubuntu登录会话的图形界面是GDM,默认接受wayland协议的x server连接, 禁用wayland,使用默认的x11就可以了。然而实践证实,至少我这么修改后没什么卵用。怀疑可能是权限的问题,先放一放,以后说不定机缘巧合能找到问题根源。
teamviewer虽然用起来爽,但前提是能公费购买teamviewer许可证,那样可以在手机上也下载一个teamviewer,绑定设备后用手机就可以远控服务器了。算好了大部分懒人都还想从手机远控,免费版teamviewer刚好只能绑定两个设备,让你们尝到甜头后乖乖掏钱。既然用linux,就是图的开源社区丰富,商业软件改不了鸡贼本性,正好也有启动问题没解决,就再找个替代的开源方案吧。
ssh连接是最容易想到的,ubuntu默认安装了ssh客户端,需要自行安装一个服务端:sudo apt install openssh-server,修改一下配置文件,允许远程ssh连接,编辑/etc/ssh/sshd_config文件,找到#PasswordAuthentication yes,将注释取消,确保启用密码身份验证。保存后重启ssh服务:sudo service sshd restart。现在到windows操作系统下的cmd控制台中敲入ssh ubuntu的用户名@ubuntu的IP地址,回车后需要确认密码,cmd就华丽变身为bash了。ls一下可以看到默认是定位在登录用户的主目录,cd ..再..,可以切换到root目录下,为所欲为的感觉爽不爽。敲一个gedit看看能不能打开图形化的文本编辑器,不行。这时候就需要大名鼎鼎的Xming和Putty登场了(虽然我之前也不知道它俩的大名,以后知道了)。
Xming是一个虚拟显示器,Putty可以通过ssh连接ubuntu,并将图形界面的输出定向到Xming的虚拟显示器上。首先需要在ubuntu下配置ssh,允许ssh连接x11客户端(刚才研究teamviewer时扩展的linux图形界面相关知识这里派上用场了吧,至少知道这个x11与图形界面有关),还是刚才那个配置文件/etc/ssh/sshd_config,增加X11Forwarding yes这句。保存,重启sshd。(这里扩充一下,如果想从这台ubuntu上通过ssh client访问其它ssh server的图形界面,则需要将这个配置文件中ForwardAgent yes、ForwardX11 yes、ForwardX11Trusted yes这三行从注释中释放出来)。服务端配置好了,返回windows系统,下载Xming,国外站点下载慢可以打开迅雷下载,迅雷下载后没有后缀,添加.exe后缀就可以了。安装后打开XLaunch,无脑点击下一步,最后会看到windows右下角的系统托盘处有一个x图标,鼠标放上去后可以看到Xming Server:0.0的提示,记住这个号码,待会儿putty定向虚拟屏幕时就是填这个号码0。接着下载putty,安装后在配置界面依次打开Connection-->SSh-->X11,选中Enable X11forwarding,X display location中填上上一步要你记住的那个Xming虚拟显示器的号码,这里显示到本机,故填写localhost:0。在找到Session配置项,将ubuntu服务器的IP地址填写到IP Address栏中,在Saved Sessions栏填写一个名字(自己取)用来保存这些配置信息。好了,点击open,就可以打开ubuntu的bash了,gedit一下,可以看到这次没有报错,切换到Xming的虚拟屏幕里看看,gedit的光标已经在标题栏下闪动了。有了上周docker的摸索经验,如果也只把ubuntu服务器当做生产服务器,任何开发工作都不在ubuntu上进行,那gedit甚至连vi都是不需要的,有没有类似的命令可以从windows或者其他ubuntu上拷贝文件到生产服务器上呢?有了ssh当然是可以的,用scp命令,这个本来是linux主机之间的安全拷贝命令,在windows下也可以通过ssh实现文件和目录的上传下载。具体命令格式如下:

scp 本地文件路径 ubuntu用户名@ubuntu_IP地址:/home/xxx

这样就将指定的本地文件上传到了ubuntu的/home/xxx目录下了。如果需要目录整体上传,加上-r参数,递归拷贝的意思。捋一下思路,日常管理远程服务器,不需要图形化界面,那就只需要启用和配置好ubuntu上的ssh,在windows的cmd或者ubuntu上的bash用ssh连接远程ubuntu的bash进行进程管理,用scp修改ubuntu上的文件。善于提问的你可能要问,有没有类似scp的安全删除指令,刚才不是已经能ssh获得bash了吗,为所欲为不爽吗。大道至简,大功告成,从此无惧远控。
在这一顿折腾的过程中,还有了一个重大发现,win10操作系统可以建立子系统,子系统上就可以安装Linux,这个功能叫做wsl(windows subsystem for linux)。经过实测,通过wsl跑一个本地的ubuntu,要比在虚拟机上跑ubutun并通过ssh传输文件爽快多了,在wsl的ubuntu中,把windows的文件系统挂载在/mnt下,互传文件不要太爽,以后连vmware都可以省了啊。很有必要隆重介绍一下wsl,这个对于习惯了windows办公和开发环境,但又要在ubuntu上部署测试的人而言,实在太贴心了。
打开windows控制面板里的程序和功能设置,添加windows功能,选中“适用于windows的linux子系统“,确认后就会进行功能安装,安装后需要重启,然后再到微软商店里搜索ubuntu,选择ubuntu20.04进行安装。如果不重启,这里就没法进行安装。安装完毕后,在程序列表里就多了一个Ubuntu20.04LTS的程序,打开就是熟悉的bash,cd到/mnt目录下ls看看,电脑的几个硬盘分区都挂载过来了。这就意味着在wsl里,不需要再通过ssh的scp与宿主机互传文件了,在wsl的ubuntu中磁盘是打通了的。但有好奇的人又想,是不是在windows中也能找到这个子系统下的目录?的确可以,但找到了也不能直接去操作,因为linxu和windows的文件系统是不同的,微软在其中做了一些手脚,所以这个想法就打消吧,能从wsl中互通有无还不够吗,人不要太贪心。
有了这个wsl中的处女地,首先就是更换国内的apt源来进行首次耕耘(那个词叫什么来着)。怎么更新?windows的d盘根目录下新建一个txt文档,连同后缀一起改名为sources.list,把清华大学对应版本的源粘贴进去(详细可参考前面的日志)。进入wsl的bash(p.s.不仅可以从程序列表点击ubuntu图标进到wsl的bash,也可以直接cmd窗口中输入bash进入,有种windows和linux深度打通了的幻觉),输入sudo cp /mnt/d/sources.list /etc/apt/sources.list完成apt源更换,再次输入sudo apt update,通往开源世界的翅膀展开了。
要不要再在wsl里安装GNOME图形界面呢?除了研究ubuntu系统和GNOME的原理,其它看不出什么价值,毕竟都已经是强大的windows图形化系统的子系统了,还要GNOME干嘛呢?习惯ubuntu进行工作和开发的人也不会走windows挂子系统这么曲折的道路了。
在来看看wsl中ubuntu的网络情况,sudo apt install net-tools安装网络工具包,然后可以ifconfig,列出的网卡信息和windows的cmd下ipconfig列出的一模一样,再次有了双剑合璧的幻觉,不得不佩服微软的伟大,你们都说linux好,那我就彻底融入linux,人无我有,人有我也有,至少对于开发和运维测试而言,这一切都相当美好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容