欢迎光临散文网 会员登陆 & 注册

优化ssh连接体验

2023-03-14 14:36 作者:hufang360  | 我要投稿

别看我写了好多篇CentOS8的搭建文章,就感觉我对linux很熟一样,每次敲起指令,总是惴惴不安,我也是linux新手。个人觉得,ssh连接加一个可视化的文件管理界面,能比较好上手,毕竟在Linux世界里,一切皆文件。

之前一直在用finalshell,有文件管理界面,有资源占用界面,长时间连着ssh也不会被中断,还有一点是可以保存连接密码。不过由于通过finalshell创建的screen,运行tshock界面显示错乱,没法正常操作,所以在寻找替代品,之后发现其实ssh本身有很多特性。

经过一段时间的观察,我个人是winscp、WindowsTerminal、FinalShell混着用的。


screen下显示错乱问题

screen可以让tshock后台运行,这样当你断开ssh连接的时候,tshock不会被强制关掉。

tshock5.0版本开始,发现用finalshell连接服务器,然后创建screen,运行tshock会出现文字显示错乱的情况,服务器刚启动的时候,看着都是正常的,一段时间后服务器,控制台界面上就会出现很多重复的文字,情况如下图:

刚开服后,立马进服,会发现控制台漏了很多文字,输入指令也没个提示,当你输入exit(这个是关服指令),然后敲enter键后服务器有正常关闭,也就是说在控制台界面上输指令是能够被执行的,但是没有文字提示,你不知道指令执行了没有,你刚才输了啥,结果是啥。

那怎么解决呢!?

思路1:不解决,大不了,我不在控制台输指令。着急开服的话可以不管,但是经常用的绝对要解决。

思路2:换掉screen,比如termux,后面我去试了,功能相同,用法类似,不过由于我熟悉了screen,之前写的备份脚本也是基于screen,就没换。

思路3:换ssh连接工具,后面发现如果你用cmd直接连接服务器,在cmd上面创建screen,显示都正常了,而且,创建好screen后,再用finalshell进入这个screen显示也是正常的。cmd每台windows电脑都有啊,用cmd也不是不行。


ssh断连问题

当你连着ssh,再去查点东西,过了一段时间回来操作时,发现ssh断开连接了,亦或者是你在执行一条指令,执行时间很长,还没看到执行结果,就断开连接了。之前用finalshell不会这样。那用cmd得解决这个问题,而且之前我用winscp的时候,也老是断连。搜索发现可以设置ssh保持连接。具体是这样。

服务器这边。通过ssh连接服务器,然后执行下面的指令

在sshd_config文件中加入这些内容,意思是15s重连一次,默认重连10次:

修改完配置文件后,输入下面的指令重启ssh服务:

自己电脑这边。找到我的文档目录下“.ssh”目录,例如我的是“C:\Users\hf\.ssh\”,用记事本打开里面的“config”文件(这个是文件,且没有扩展名),如果没找到,就自己新建一个。加入这些内容,tx是腾讯的意思,可以写别的,123.123.123.123请替换成你的服务器ip,root是用户名,后面三行是保持连接相关的配置:

保存配置文件。

操作完成后,手动断开与服务器的ssh连接,重连后就是保持连接状态了。

备注:最近发现,windows下也有不少ssh连接软件,其中tabby也是不会断连的,但个人觉得它的启动速度不够快,界面操作感觉不顺手,文件管理体验也比较原始,于是没怎么用。


连接时不用输密码

每次连接,都要输入密码,关了窗口,再次连接又要求输入一次。其实现在大部分连接软件,都支持保存密码了,但是用cmd的话确实是没有保存密码的功能,但是有两种优化思路。

思路1:减少输入次数,电脑开机后首次连接,输入一次密码,下次再连,就不用输了。

跟上一个段落的步骤类似,也是修改电脑这一段的配置文件,找到我的文档目录下“.ssh”目录,例如我的是“C:\Users\hf\.ssh\”,用记事本打开里面的“config”文件,在对应的位置加上“ForwardAgent yes”,意思是允许ssh客户端进行代理转发,例如:


思路2:通过ssh密钥连接,设置好密钥后,直接输入连接指令就可以直接连接(说了一句废话)。

首先在自己电脑上创建一个密钥。在cmd上输入“ssh-keygen”,指令执行后会提示你文件保存位置,是否需要设置密码,这里我都是直接敲enter键。

用记事本打开“id_rsa.pub”文件,例如在我电脑上地址是这个“C:\Users\hf\.ssh\id_rsa.pub”。里面的内容只有一行,但是很长,按Ctrl+A全选,然后按Ctrl+C复制。

这里还是以腾讯云的轻量应用服务器为例,找到“密钥"模块,然后点击“创建密钥”按钮

选择“使用已有公钥”,然后把刚才复制内容,粘贴到“输入公钥”这个输入框,地域这里要选择你服务器所在的地区,例如我的在上海,就选上海,确认输入无误后,点击确定按钮。

查看云服的实例详情,找到“SSH密钥”模块,点击“绑定密钥”按钮

勾选之前我们创建的密钥,然后点“下一步”按钮。

勾选“同意强制关机”,然后点击“确定”按钮。

重启完毕后,在cmd输入“ssh root@123.123.123.123”,然后敲Enter键就,首次连接可能会出现下图提示,输入“yes”然后敲Enter键就好了

有时设置ssh密钥登录后,密码登录会关掉,如果你使用其它连接提示认证失败时,可以检查下“密码登录”选项是否被关闭了。

输入下面的指令修改配置文件

把“PasswordAuthentication no” 改成 “PasswordAuthentication yes” ,就如下图这样:

改完之后,输入下面的指令重启ssh服务,此时再次连接就可以通过密码连接了:

备注:关于思路2的一点疑问,设置密钥登录后,加入我用另一台电脑登录,还需要不需要密码。答,需要,因为密钥不在另一台电脑上。所以安全还是有保证的。


为什么用WindowsTerminal

相信,很多人都用上了win10及以上的系统了,win7系统本文暂不讨论。

cmd的文字比较细,看着有点费眼睛。

调大字号,文字还是有点尖尖的。

所以我用“Windows Terminal”,不严谨地讲,核心还是cmd,但是文字看上去更漂亮了。


为什么用winscp

这个就不用解释了吧,好用就完事了。winscp里可以让你使用ctrl+c和ctrl+v复制粘贴文件,体验,接近windows资源管理。

我个人一个操作是,选中一个文件,快速按下Ctrl+C和Ctrl+V,然后改下名字,就把这个文件备份到当前目录下了,很是方便。

其实也有查看单个文件夹大小的方法,只是老是记不住,winscp提供了一个查看大小界面。

这里也需要设置下保持连接,大致操作如下图,启用“发送空SSH包”。这样winscp就不太会与服务器断开连接。

还在用FinalShell

对还在用,想看看服务器状态,还是不自觉地,打开finalshell,看看cpu百分比、内存占用。

有一回玩模组,开了自动备份忘关了,后面发现服务器连不上了,脑袋里一堆问号,当时finalshell挂着的,看到磁盘的可用/大小满了,突然意识到哦,服务器磁盘满了,赶紧删掉过期的地图备份。

有时我也会从内存占用这里,看看tshock有没有正常运行,有的话就能看到“TShock.Server”。


骚操作选手vscode

vscode就不细讲了,感兴趣自己摸索一下。

前段时间在弄qq机器人,直接通过vscode编辑服务器上的配置文件,编辑完了,直接ctrl+S就保存上传了,体验不错。不过通过vscode创建的screen有问题的,甚至都没到运行tshock那一步。

这里推荐3个扩展,可以看到服务器端口情况、某个配置文件的大小,cpu、内存、磁盘、网络上传和下载,以及服务器开机时长。这些应该都是可以敲指令看的,但不怎么用,老是记不住,工具带的话,要方便不少。

某次开了tshock的rest功能,使用默认端口,总请求错误,看了下连接,才发现原来端口改成别的了,233~

然后发现,我有台服务器居然运行了超过365天,有种魔幻的感觉,要知道我自己的电脑几乎每天都关机。


看似本质,实际上就是理解加深了

因为经常需要上传下载服务器上的文件,也习惯了,直接双击服务器上的文件,使用本机的vscode编辑完后,保存就立即上传。所以能有个客户端查看和管理服务器文件,这点太需要了。得知ssh服务器开启后,基本上也会开启sftp服务,哦,原来要找这类管理服务器文件的软件,得搜索关键词“sftp”,然后你就有很多答案了。如果你是macOS,可以使用ForkLift。如果你是安卓,可以使用ES文件浏览器(终端用的是JuiceSSh),iOS这边也有一些好用的app,就有一种打开“任督二脉”的感觉。

要找连接服务器的软件,就是搜索关键词“ssh”、“terminal”、“终端”。慢慢滴你会找到很多答案,这里需要注意的是,这类软件,不要使用破解软件,以免服务器密码和密钥泄露。

此时大家会有很多选择,选择你喜欢的就行了。最后发现ssh的一些基础知识是通用的,有种万变不离其宗的感觉,因为不懂,也因为不熟悉,借助软件帮我们完成了很多“很难”的操作,慢慢地,你理解了,发现a到b,有很多解,你的选择更自由了!

但此刻linux还有很多东西不懂,实践多了,记忆就加深一些,这正是有趣的地方!


优化ssh连接体验的评论 (共 条)

分享到微博请遵守国家法律