问题描述
今天遇到一个有趣的事情,用另一台机器ssh我的机器竟然不work了,这是什么情况呢?
解决方法
于是我就在网上搜
“linux开启ssh”
“把自身linux电脑作为服务器让其他机器链接”
“把自身linux电脑作为服务器让其他机器链接linux命令”
……
终于找到了一个靠谱的博客:
安装ssh服务端
sudo apt-get install ssh*
激活ssh服务
sudo service ssh start
查看ssh运行状态
sudo service ssh status
结果图如下
我按照博主的内容运行了之后发现是可以运行的,那就好办了,但是我明明记得之前没有这么麻烦啊!直到我看到了下面这部分内容:
哦这才对嘛,这才是我知道的内容。详细内容请查看:
自用Linux电脑改装为自用小型服务器及使用入门教程https://blog.csdn.net/astro_jingliang/article/details/127233173
问题后记
针对上述问题,其实就很清晰,如果你想自己的机器一直可以被其他机器链接,或者感觉每次手动开启和手动关闭麻烦,那就选择自动开启,因为这是系统级别的服务,linux本身就具有。
sudo systemctl enable ssh
和sudo service ssh start
都涉及到管理和启动SSH(Secure Shell)服务,但它们执行不同的操作:
sudo systemctl enable ssh
:
systemctl
是用于管理 systemd 服务的命令。enable
表示启用一个服务,使其在系统引导时自动启动。ssh
是服务的名称,代表SSH服务器。这个命令的目的是启用SSH服务,以便在系统引导时自动启动。这样,每当你启动或重启系统时,SSH服务都会自动启动。
sudo service ssh start
:
service
命令是用于启动、停止、重启或查询系统服务状态的通用工具。ssh
是服务的名称,代表SSH服务器。start
表示启动SSH服务。这个命令的目的是手动启动SSH服务,而不涉及到是否在系统引导时自动启动。这对于需要在运行时手动启动或重新启动SSH服务的情况非常有用。
综上所述,
sudo systemctl enable ssh
用于配置SSH服务在系统引导时自动启动,而sudo service ssh start
用于手动启动SSH服务。如果你想确保SSH服务在系统引导时自动启动,并且还想手动启动它,你可以分别运行这两个命令。
同时运行上面博客里提到的指令:
ssh -X 用户名@ip
可能会报错,报错内容为:
/usr/bin/xauth: file /home/visionx/.Xauthority does not exist
其时遇到这个问题无所谓,因为这个已经链接成功了。当然,也可以用这个方法解决这个问题:
.Xauthority
文件不存在:首先确保/home/visionx/.Xauthority
文件确实不存在。你可以运行以下命令来检查:ls -l /home/visionx/.Xauthority
如果文件确实不存在,你可以尝试通过创建一个新的
.Xauthority
文件来解决问题:touch /home/visionx/.Xauthority
然后,重新运行你的SSH连接命令。
权限问题:如果
.Xauthority
文件存在但无法访问,可能是因为文件的权限设置不正确。确保.Xauthority
文件的所有者是正确的用户(visionx
)并且具有正确的权限。你可以运行以下命令来更正文件的权限:chown visionx:visionx /home/visionx/.Xauthority chmod 600 /home/visionx/.Xauthority
完结撒花
至此就把这个问题彻底解决了,我相信肯定有其他文章讲的更好,只是没被我遇到,感谢今天遇到的这位。