现在,更多的网站使用Nginx充当Web服务器并部署为LEMP环境。
即使是Java Web项目,通常也会使用Nginx进行端口反向代理,而Nginx的兼容和稳定性,Linux远远好于Windows Server。
另外一方面,Linux配合软件包管理器(yum、apt等),可以十分方便地安装好基本软件,现在还有Docker容器工具,如果是功能性模块,用Docker即可。
还有一些公认的原因:
开源,可以轻松查看用于创建Linux内核的可用代码,还可以修改代码以修复任何错误或定制话需求后自行编译等;
稳定性很好,系统不容易崩溃或者卡死(Windows的稳定性,这几年……);
安全性能好;且系统性问题少。
操作方便,对计算机专业人士来讲,几条Shell命令就可以执行很多的操作,比Windows Server的图形化控制好很多。
虽然Linux没有图形化界面、大部分新用户没有使用过,但是……我还是极度推荐服务器使用Linux。
那么,小白用户,买了服务器后,如何远程连接自己的Linux服务器呢?
远程登录
本次的分享不为别的,就是讲解Linux服务器的入门使用:远程登录服务器:
推荐使用SSH(OpenSSH)进行远程登录,安全性高,且更加方便。
不推荐使用进行远程登录,所以本次就教大家用SSH多种方法登录。
这次文章就教大家使用SSH“开启”服务器的大门。
本次教程,远程服务器主要有两个方面:
密钥登录:使用SSL(OpenSSH和OpenSSL)生成的私钥和公钥进行配对登录(免密)
账号登录:使用用户密码进行登录
客户端推荐
因为要使用SSH远程连接服务器,需要端对端的加密通信,进而需要SSL函数、SSH的客户端支持。
推荐的SSH客户端:
Windows【自带工具】:Win10可以使用Powershell,Win11可以使用Windows Terminal,这两个都是自带的工具。
Linux&macOS【自带工具】:Linux和macOS,使用自带的Terminal即可。
Android【非自带】:推荐使用termius
iOS【非自带】:推荐使用、
SSH:
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议。可在不安全的网络中为网络服务提供安全的传输环境(基于SSL实现)。
SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
我们平时使用的SSH,一般是OpenSSH,基于OpenSSL实现。
Windwos10、macOS、Linux均采用OpenSS和OpenSSH方案。
Opt1:账号登录
首先我们介绍一下账号登录,账号登录的好处:
相当于账号和密码登录,账号登录更方便于多平台和多用户使用同一个账号登录。
我们新买的服务器,一般都是有安装OpenSSH和OpenSSL的,其中OpenSSH依赖于OpenSSL。所以,只需要设置用户名对应的密码后,客户端(本地电脑)就可以连接了
设置密码
如果你是云服务器,在还没有登录前,需要先重置一次密码。比如:腾讯云服务器控制台内:
用云服务器厂商提供的接口重置自己服务器密码后,服务器密码后会自动重启,这样密码就设置好了
如果你是局域网内Linux(比如:树莓派、VMware内Linux虚拟机等);
那么就不需要设置密码了,密码就是你平时登录的账号密码,但是注意查看是否有安装OpenSSL和OpenSSH:
# 查看OpenSSL
openssl version
# 查看SSH
ssh -V
没有安装,可以用户软件包管理器安装。
PS: 如果你使用腾讯云lighthouse,可以用用lighthouse户去设置(重置)密码,也很简单,在控制台内选择:
这个时候,我们会登录腾讯云默认用户:lighthouse,在此界面使用su命令切换到root用户(也可以切换到其他用户):
sudo su - root之后,我们可以使用passwd命令,重置用户密码:
密码会自动隐藏哦,盲输后回车即可。
允许远程登录
之后,我们需要允许服务器的SSH(OpenSSH)远程登录。
需要注意,如果你是使用腾讯云的控制台,进行重置密码,那么重置后,腾讯云会帮你配置好SSH(OpenSSH)远程登录,无需进行本次操作。
编辑文件/etc/ssh/sshd_config:
# 当前为root用户,非root用户请添加sudo
vim /etc/ssh/sshd_config
之后,添加PasswordAuthentication=yes。保存并退出即可。
最后,重启OpenSSH,使其生效:
# 当前为root用户
systemctl restart sshd
到此,SSH账号登录的服务器端,服务器(被连接端)配置完成。接下来,我们就可以使用客户端连接了。
连接Linux
现在,我们就可以本地连接服务器。假设:
我的Linux服务器IP是:192.168.3.241
我的服务器是Debian/CentOS
需要远程登录的账号为root
那么我的SSH连接命令就是:
ssh root@192.168.3.241
出现Are you sure you want to continue connecting (yes/no/[fingerprint])?后,输入yes并回车,这个时候输入刚刚设置的密码即可连接:
到此 ,我们的服务器就连接成功了: