云服务器远程连接指南:各种方法详解与问题解决

本文最后更新于:10 个月前

前言

正文

概述云服务器远程连接的基本概念和常用方法

  • 解释什么是远程连接,为什么需要使用云服务器
  • 介绍SSH、RDP和VNC等常用的远程连接协议

阐述远程连接云服务器的准备工作

  • 选择适合自己的云服务提供商和服务器配置
  • 购买服务器并设置基本的网络和安全设置
  • 下载和安装远程连接客户端工具

讲述自己踩过的坑和解决的问题

绑定密钥对导致SSH服务异常

起因

  • 为了更加保障远程连接服务器地安全性,我为阿里云实例绑定了密钥对
  • 但在绑定密匙对之后,出现了以下问题:
  • 在使用宝塔面板的终端远程连接云服务器时,始终显示:无法自动认证,请填写本地服务器的登录信息!
  • 如下图所示:

image-20230627001126253

  • 这是一个很常见的错误,在此我对这种问题表明我的见解:(2023/06/26晚)

尝试解决

  • 首先排查宝塔面板的问题所在,即检查宝塔面板是否开启SSH服务,是否允许使用SSH密码、SSH密钥登录:

image-20230627001649533

  • 同时检查宝塔面板是否开放了SSH服务端口(默认端口号为22):

image-20230627001839451

  • 到这里,基本排除了宝塔面板本身的配置错误,即连接服务器失败,是由于服务器本身的SSH服务配置有误,或者相关端口未开放
  • 总之,问题出在服务器上
  • 服务器(阿里云服务器)SSH服务开启/重启失败,如此常见的问题,我苦苦找寻了两天却始终未能解决
  • 通过自主问题排查发现的问题:(2023/06/26晚)

  • 终端报错情况:

image-20230627080006664


image-20230625100319214

  • 但会是什么问题呢?有太多因素了,网上有令人眼花缭乱的解决方案,甚至阿里云官方有关SSH服务开启失败的解决办法,我都一一尝试过,甚至向智能AI描述问题寻求帮助,均无果

image-20230627080305569

问题解决

  • 终于,我在执行了下面这条命令之后,注意到了这样的报错信息:(2023/06/26晚)
1
/sbin/sshd -d

image-20230626120841860

1
chmod 600 /etc/ssh/ssh_host_ed25519_key

image-20230627081916016

  • 那这究竟是怎么一回事呢?以下是我的理解:(2023/06/26晚)

问题分析

  • 我们在生成密钥对后,公钥被投送至服务端,私钥则保存在我们自己的文件目录下
  • 这样,将来SSH远程连接服务器时,除了使用用户名、密码登陆外,还可以使用私钥登录
  • 如上图所示, /etc/ssh/ssh_host_ed25519_key目录下保存的便是私钥,而给该文件设置的默认读写权限0777过于开放
  • 0777是一种非常宽松的权限设置,可能会带来安全风险,因为任何人都可以访问和修改该文件或目录,不符合相关要求,所以SSH服务连接失败

权限设置为0777,意味着所有者、所有者所属组和其他用户都具有读取(第一个7)、写入(第二个7)和执行(第三个7)的权限。这是一种非常宽松的权限设置,可能会带来安全风险,因为任何人都可以访问和修改该文件或目录。

  • 所以要对该密钥文件的权限设置为600,这是一种相对严格的权限设置,限制对文件的访问权限

600权限是一种相对严格的权限设置,它可以用于限制对文件的访问权限。具体权限设置为600表示只有文件的所有者拥有读取和写入的权限,而所有者所属组和其他用户没有任何权限。

Workbench远程连接云服务器失败

简介

  • 这是个很顽固的问题了,好多次我拿Workbench远程连接时,总会报各种错误,总之就是连接失败
  • 这些连接失败的原因不同,解决方法各异,接下来我们一一介绍:(2023/07/18晚)

Linux实例未开启root用户远程登录

  • 我们在使用Workbench远程连接服务器时,一般采用密码认证的方式👇,如下图所示:

image-20230718233656272

  • 在用户名和密码都输入正确的前提下,你可能会经历这样的报错:

image-20230718235927679

  • 这是什么意思呢?就是该Linux实例未开启root用户远程登录,简单来讲就是root用户不允许通过密码认证方式远程连接到服务器
  • 这里可以看官方提供的操作指南:通过密码或密钥认证登录Linux实例 (aliyun.com)
  • 即开启两个权限:

image-20230718234532565

  • 修改完成后记得重启SSHD服务,很容易搞忘记这步操作:
1
systemctl restart sshd.service
  • 至此,由Linux实例未开启root用户远程登录而导致Workbench远程连接实例失败的问题成功解决!

未及时同步更新用户信息

  • 这个问题的命名听起来好奇怪,那是因为我还不太清楚导致这种问题出现的原因是什么
  • 废话少说,看报错:

image-20230718233614526

本地 XShell工具连接失败

  • 今天在本地使用 XShell远程连接工具尝试连接阿里云服务器时,出现了以下问题:

image-20230730191908046

  • 很显然,连接失败了,依次排除可能的原因:
    • 服务器是否开启
    • 是否开放默认的22端口
    • 是否允许远程连接
    • 是否允许root用户密码登录
  • 以上可能的原因均被排除后,我检查本地连接工具,结果发现用户名不是root,而是root权限:(图我没接到截到)

image-20230730192216847

  • 删除了这个连接,重新修改了下用户名为root,成功连接到服务器(2023/07/30午)

介绍其他可能的远程连接方法和工具

  • 在SSH、RDP和VNC之外,介绍其他可能的远程连接方法,如使用VPN、Web终端等
  • 推荐和比较不同方法的优缺点,帮助读者选择适合自己的远程连接方式

总结

  • 强调远程连接云服务器的重要性和便利性
  • 鼓励读者在实践中积累经验,并与其他人分享和交流

image-20230704204820117

  • 非常感谢您看到这里,希望对您有帮助!

云服务器远程连接指南:各种方法详解与问题解决
http://example.com/2023/06/20/云服务器远程连接指南:各种方法详解与问题解决/
作者
Memory
发布于
2023年6月20日
更新于
2023年7月18日
许可协议