Linux服务器入门:如何远程登录自己的腾讯云服务器?

作者:Mintimate

博客:https://www.mintimate.cn
Mintimate's Blog,只为与你分享

嗷~~头图不能少

Linux Server

现在,更多的网站使用Nginx充当Web服务器并部署为LEMP环境,即使是Java Web项目,通常也会使用Nginx进行端口反向代理,而Nginx的兼容和稳定性,Linux远远好于Windows Server。

另外一方面,Linux配合软件包管理器(yum、apt等),可以十分方便地安装好基本软件,现在还有Docker容器工具,如果是功能性模块,用Docker即可。还有一些公认的原因:

  • 开源,可以轻松查看用于创建Linux内核的可用代码,还可以修改代码以修复任何错误或定制话需求后自行编译等;
  • 稳定性很好,系统不容易崩溃或者卡死(Windows的稳定性,这几年……);
  • 安全性能好;且系统性问题少。
  • 操作方便,对计算机专业人士来讲,几条Shell命令就可以执行很多的操作,比Windows Server的图形化控制好很多。

虽然Linux没有图形化界面、大部分新用户没有使用过,但是……我还是极度推荐服务器使用Linux。

那么,小白用户,买了服务器后,如何远程连接自己的Linux服务器呢?

嘿嘿,其实Linux连接,比Windows Server还简单很多嗷。可以选择的远程登录方式也很多~~

Windows Server Or Linux Server?

远程登录

本次的分享不为别的,就是讲解最入门的使用:远程登录服务器。推荐使用SSH进行远程登录,安全性高,且更加方便,不推荐使用telnet进行远程登录,所以本次就教大家用SSH多种方法登录。

大家这次双十一,也一定买了腾讯云的轻量应用服务器吧,这次文件就教大家“开启”服务器的大门。本次服务器使用腾讯云轻量应用服务器,但是腾讯云CVM也是可以的嗷。其他厂商服务器,总体一样,可能不能使用腾讯云的一键登录功能。

本次教程,远程服务器主要有两个方面:

  • 密钥登录:使用SSL(OpenSSH和OpenSSL)生成的私钥和公钥进行配对登录(免密)。
  • 账号登录:使用用户密码进行登录。

因为要使用SSH远程连接服务器,推荐的SSH客户端:

  • Windows【自带工具】:Win10可以使用Powershell,Win11可以使用Windows Terminal,这两个都是自带的工具。
  • Linux&macOS【自带工具】:Linux和macOS,使用自带的Terminal即可。
  • Android【非自带】:推荐使用https://termius.com/
  • iOS【非自带】:推荐使用:termius、ServerCat
macOS上的Terminal

账号登录

首先我们介绍一下账号登录,账号登录的好处:

  • 相当于账号和密码登录,账号登录更方便于多平台和多用户使用同一个账号登录。

我们新买的服务器,一般都是有安装OpenSSH和OpenSSL的,其中OpenSSH依赖于OpenSSL。所以,只需要设置用户名对应的密码后客户端(本地电脑)就可以连接了。

服务器设置密码

以腾讯云为例,我们需要在部署后,设置服务器的密码。有两种方式:

  • 重置密码【推荐】
  • 用lighthouse用户去设置密码

首先介绍重置密码,重置密码只需要到控制台内即可:

重置密码

之后注意密码的条件:

密码复杂度要求

最后,重置服务器后会自动重启,这样密码就设置好了。

如果你要用lighthouse用户去设置(重置)密码,也很简单,在控制台内选择:

选择“一键登录”

这个时候,我们会登录腾讯云默认用户:lighthouse,在此界面使用su命令切换到root用户(也可以切换到其他用户):

sudo su - root
切换用户

之后,我们可以使用passwd命令,重置用户密码:

重置密码

密码会自动隐藏哦,盲输后回车即可。

允许远程密码登录

之后,我们需要运行服务器的SSH(OpenSSH)远程登录。**需要注意,如果你是使用腾讯云的控制台,进行

重置密码,那么重置后,腾讯云会帮你配置好SSH(OpenSSH)远程登录,无需进行本次操作。**

编辑文件/etc/ssh/sshd_config:

# 当前为root用户
vim /etc/ssh/sshd_config
编辑sshd_config

之后,添加PasswordAuthentication=yes。保存并退出即可。

如果你并不知道Vim的操作,建议参考文章终端文本编辑神器--Vim命令详解。如何配置Vim以及Vim插件?

最后,重启OpenSSH,使其生效:

# 当前为root用户
systemctl restart sshd

到此,SSH账号登录的服务器端,配置完成。接下来,我们就可以使用客户端连接了。

本地连接服务器

现在,我们就可以本地连接服务器。假设我的服务器IP是:192.168.3.241,我的服务器是Debian/CentOS,默认用户为root,那么我的SSH连接命令就是:

ssh root@192.168.3.241
macOS上Terminal操作
Windows上Windows Terminal操作

出现Are you sure you want to continue connecting (yes/no/[fingerprint])?后,输入yes并回车,这个时候输入刚刚设置的密码即可连接:

输入密码后,成功连接

注意:输入密码时,密码自动隐藏,盲输后回车即可。

到此 ,我们的服务器就连接成功了:

服务器连接成功

密钥登录

接下来,我们介绍如何使用密钥进行登录,这也是我喜欢的远程登录方式,主要原因:

  • 安全性高:相对于密码的长度和复杂度,私钥长度默认为2048位,与公钥进行匹配,安全性极高
  • 方便:使用密钥登录,私钥和公钥自动匹配,无需输入密码即可登录。(GitHub、Gitee等的免密Git,也是使用密钥进行验证)
OpenSSH密钥登录

为实现密钥登录,我们只需要客户端生成私钥和公钥后,将公钥放置到服务器上,在使用SSH连接时,会自动进行匹配验证,并完成登录

客户端生成密钥

macOS和Linux通常自带OpenSSH和OpenSSL,所以我们直接使用Terminal进行密钥生成:

ssh-keygen -t rsa -C "youremail@domain.com"

其中,youremail@domain.com为你的电子邮箱,不需要制定邮箱可以简化为:

ssh-keygen
macOS/Linux使用Terminal
Windows使用Windows Terminal

其中:

  • Enter file in which to save the key:密钥存放地址,默认为当前用户目录下的.ssh文件夹下。
  • Enter passphrase:保护私钥的密码,一般留空,直接和上面一样回车即可。
  • Enter same passphrase again:确认私钥密码(不解释了……)

生成后,进入用户名文件夹即可看到我们生成的密钥:

生成的密钥

其中:

  • id_rsa:生成的私钥,保留在电脑即可。
  • id_rsa.pub:生成的公钥,打开后,复制内容,后文部署到服务器上。
公钥内容

服务端部署公钥

现在,我们就可以部署公钥到服务器了,你可以选择腾讯云控制台的一键部署:

绑定密钥

之后,到控制台上部署即可:

腾讯云绑定密钥

当然,通用方法是先登录服务器:

登录服务器

之后,进入.ssh文件夹内(如果没有就使用mkdir命令创建),并使用vim创建并编辑authorized_keys文件:

cd .ssh
vim authorized_keys

之后粘贴公钥即可:

粘贴公钥

到此,保存并退出即可:

保存并退出到主终端

到此,SSH密钥登录的服务器端,配置完成。接下来,我们就可以使用客户端连接了。

authorized_keys内,可以添加多个客户端的公钥,一行一个,或者换行隔开即可。

客户端远程连接

和刚刚一样,我们使用ssh命令就可以连接,假设我的服务器IP是:192.168.3.241,我的服务器是Debian/CentOS,默认用户为root:

ssh root@192.168.3.241

但是这个时候就可以看到,不用输入密码了:

无密码连接

Q&A

当然,这是一篇入门教程,新手总是会碰到一些问题。这里就解答一下常见的问题。

REMOTE HOST IDENTIFICATION HAS CHANGED!

出现:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
出现错误

一般出现这个错误,发生在你服务器重置后。主要是服务器的解析值不一样了,我们需要删除旧的(OpenSSH)解析值,需要删除的地址,上面已经写了:

旧的解析值所在地址

打开上述文件,删除旧记录值:

删除

删除后,即可重新连接:

重新连接

Ubuntu等系统允许远程登录

如果你选择的是腾讯云Ubuntu系统:

腾讯云Ubuntu系统

默认,你只能使用ubuntu这个用户进行登录;但,如果你想直接使用root用户进行远程登录,也不是不可以。

编辑/etc/ssh/sshd_config这个文件,在文末添加:

PermitRootLogin yes
添加配置

之后,保存并重启ssh服务:

systemctl restart sshd

之后,就可以使用root用户进行登录了。

Permission denied (publickey).

如果SSH远程连接的时候,出现Permission denied (publickey).错误:

出现错误

其实看字面意思就可以理解了:权限不允许(公钥);意思就是,你电脑的私钥对应的公钥,并不在服务器的。两个解决方法:

  • 服务器上,在用户authorized_keys文件内,添加设备的公钥,具体操作可以看上文。
  • 服务器上,在/etc/ssh/sshd_config内,添加PasswordAuthentication=yes,具体操作也可以看上文。

设置了authorized_keys,还是无法密钥登录?

设置了authorized_keys,还是无法密钥登录?这个可以依次排查:

  • OpenSSH的配置文件(/etc/ssh/sshd_config)内,是否有允许密钥登录。
  • 服务器上,用户文件夹(“家”目录)下的.ssh文件夹和authorized_keys权限是否正确,所属用户是否正确。
当前为root用户
drwxr-xr-x  2 root root 4.0K Dec  1 10:28 .ssh
-rw-r--r-- 1 root root 576 Dec  1 10:28 authorized_keys
文件和文件夹权限

END

到此,Linux远程连接就是这些嗷。总的来说,方法很多,不过这篇文章,足够各位入门了吧。嘿嘿,大家不要忘记点赞和收藏、分享嗷。

大佬

另外,不建议使用Linux桌面环境,如果有Linux桌面需求,需要在腾讯云服务器上安装Linux桌面环境,参考:

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
Linux服务器入门:如何远程登录自己的腾讯云服务器?
现在,更多的网站使用Nginx充当Web服务器并部署为LEMP环境,即使是Java Web项目,通常也会使用Nginx进行端口反向代理,而Nginx的兼容和稳定...
<<上一篇
下一篇>>