前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux服务器入门:如何远程登录自己的腾讯云服务器?

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

原创
作者头像
Mintimate
发布2021-12-02 14:51:07
78.1K4
发布2021-12-02 14:51:07
举报
文章被收录于专栏:Mintimate's Blog

作者: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?
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
macOS上的Terminal

账号登录

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

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

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

服务器设置密码

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

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

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

重置密码
重置密码

之后注意密码的条件:

密码复杂度要求
密码复杂度要求

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

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

选择“一键登录”
选择“一键登录”

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

代码语言:txt
复制
sudo su - root
切换用户
切换用户

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

重置密码
重置密码

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

允许远程密码登录

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

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

编辑文件/etc/ssh/sshd_config:

代码语言:txt
复制
# 当前为root用户
vim /etc/ssh/sshd_config
编辑sshd_config
编辑sshd_config

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

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

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

代码语言:shell
复制
# 当前为root用户
systemctl restart sshd

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

本地连接服务器

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

代码语言:shell
复制
ssh root@192.168.3.241
macOS上Terminal操作
macOS上Terminal操作
Windows上Windows Terminal操作
Windows上Windows Terminal操作

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

输入密码后,成功连接
输入密码后,成功连接

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

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

服务器连接成功
服务器连接成功

密钥登录

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

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

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

客户端生成密钥

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

代码语言:shell
复制
ssh-keygen -t rsa -C "youremail@domain.com"

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

代码语言:txt
复制
ssh-keygen
macOS/Linux使用Terminal
macOS/Linux使用Terminal
Windows使用Windows 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文件:

代码语言:shell
复制
cd .ssh
vim authorized_keys

之后粘贴公钥即可:

粘贴公钥
粘贴公钥

到此,保存并退出即可:

保存并退出到主终端
保存并退出到主终端

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

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

客户端远程连接

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

代码语言:shell
复制
ssh root@192.168.3.241

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

无密码连接
无密码连接

Q&A

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

REMOTE HOST IDENTIFICATION HAS CHANGED!

出现:

代码语言:txt
复制
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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系统

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

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

代码语言:shell
复制
PermitRootLogin yes
添加配置
添加配置

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

代码语言:shell
复制
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权限是否正确,所属用户是否正确。
代码语言:txt
复制
当前为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桌面环境,参考:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux Server
    • 远程登录
    • 账号登录
      • 服务器设置密码
        • 允许远程密码登录
          • 本地连接服务器
          • 密钥登录
            • 客户端生成密钥
              • 服务端部署公钥
                • 客户端远程连接
                • Q&A
                  • REMOTE HOST IDENTIFICATION HAS CHANGED!
                    • Ubuntu等系统允许远程登录
                      • Permission denied (publickey).
                        • 设置了authorized_keys,还是无法密钥登录?
                        • END
                        相关产品与服务
                        云服务器
                        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档