为了账号安全,请及时绑定邮箱和手机立即绑定

目录

手机
阅读

扫一扫 手机阅读

一条龙的 Node·Vue·React 服务器部署

原价 ¥ 49.00

立即订阅 ¥ 49.00
1.远程登录:Win/Mac下ssh远程登录服务器
作者:Scott 更新时间:2019-05-05 19:22:15
理想的书籍是智慧的钥匙。

——列夫·托尔斯泰

第一次 ssh 远程登录服务器

本篇我们来学习一个非常实用的技能——无密码登录服务器。原理很简单,就是让服务器存一份本地的公钥,借助本地和服务器之间的一个认证机制,可以不输入密码直接登录服务器。这在往服务器多次发布资源的时候非常实用,不然你每次往服务器上传资源或者通过服务器调用程序下载第三方资源,都要输入密码,太麻烦了,而且时间久了密码也容易忘记。我们依然通过流程讲解 + 命令行演示,来让大家学会,登录服务器,再也不用腰上挂一堆钥匙了,到家门口直接指纹开门。

拿到服务器的第一件事,当然就是得连上服务器,是通过 ssh 从本地连上我们的服务器,Windows 下可以用 PuTTY 这样的工具,在 Windows 下其实有很多不错的工具,比如 wsl-terminalbabun 等,在 Mac 下我们用终端就可以。

登录服务器,需要你先拿到服务器的外网 IP,也就是阿里云控制台上的这个外网 IP:

图片描述

服务器默认用户名通常是 root,我们按照阿里云的来,首次我们登录进去,一般都会用 root 来深入虎穴,利用终端的 ssh 命令 + 空格,跟上 用户名@ip 就像邮箱一样,直接回车就可以了:

提示:其他的云服务商不一定是 root 账号,比如 UCloud 用的是 ubuntu 作为默认的登录账号。

ssh root@xx.xx.xx.xx

这时候,你其实在要告诉它,hi, 那个 xx.xx.xx.xx 的 ip,我是 root 国王,快给我开城门,迎接我微服私访。

注意,在此时要登录的时候,如果遇到一个英文的提示,问你,是否同意授权,因为这是你本地的电脑,第一次连上远程的一个不认识的主机,它很紧张,屏幕上会出现一连串提示(如下面显示),意思是无法确认 host 主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?直接输入 yes 回车就可以了。

The authenticity of host '123.123.123.123 (123.123.123.123)' can't be established.
ECDSA key fingerprint is
79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Are you sure you want to continue connecting (yes/no)?

但是一群小的们不甘心啊,你谁啊你,凭什么给你开啊,出示传国玉玺。对,就是要登录密码啊。

root@47.110.39.55's password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-93-generic x86_64)

那我们就输入密码呗,也就是我们购买阿里云服务器时候配置的密码,输入密码的时候,密码是不显示的

提示:密码如果输错了,会提示再输入一次的,如果想删除刚才输错的部分,因为你看不到嘛,那么就按下 backspace 也就是 delete 键多按几次,索性把输入的全删除,重新来过。

登录进去以后,先检查 Ubuntu 的版本是多少,是不是 14.04 的这个大版本,可以直接输入 sudo lsb_release -a 查看版本,如:

sudo lsb_release -a
[sudo] password for mh:
LSB Version:  core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID: Ubuntu
Description:  Ubuntu 16.04.5 LTS
Release:  16.04
Codename: xenial

可以发现我某一台服务器上的版本是 16.04.5,有时候登录进去,会遇到一个这样的提示:

New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

如果对 Linux 系统差异性不够了解,或者有重要服务在线上已经运行,千万不要手痒运行 do-release-upgrade 这个命令,这样等于是把系统重新升级到最新,可能会引发很多问题。当然有时候你所依赖的一个第三方库,必须依赖某个操作系统版本的时候,可以果断升级,升级的话,直接执行:

do-release-upgrade

然后就是一路等待,收到命令行提示窗,就无脑输入 Y 继续,遇到这个 “是否确认系统版本” 的提示框也一样:

Configuration file '/etc/sysctl.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.

也可以无脑输入 Y 继续,这当中可能会遇到一些本地包变化的提示。

提示:这里要小心一点,如果是一台 “裸服务器”,可以选择第一项,然后回车继续;如果不是裸服务器,要评估下差异性,可以到后面几项看看不同再继续。其他的类似弹窗都可以采取这个策略,记得升级完成后,要重启服务器。

无论是升级服务器后,还是第一次打开服务器,一定要先运行:

sudo apt-get update

上面命令的作用是,先把服务器上所有的包和源都 check 和更新一遍,让服务器处在一个崭新的状态。

假如你预测某一天,你会使用到视频啊、图片合成啊,这些多媒体服务,可以把一些底层库先预装了,比如 node-canvas 依赖的库:

sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 

另外可以把一些常用的开发者套件也一并安装了,通过:

sudo apt-get install -y software-properties-common

这样安装后,如果我们想要安装比较新的 FFmpeg 处理视频图片的库,就可以这样来装了:

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg
ffmpeg -version
// ffmpeg version 4.0.3-1~18.04.york0 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)

考虑多购买一块数据盘

另外有时候,我们选购服务器的时候,会多购买一块数据盘,这个数据盘就需要额外来挂载,记住,如果你没有购买多余的数据盘,这里是不需要额外挂载的哈。

购买服务器的时候,阿里云就默认给你挂载了一块硬盘,应该是 20GB 的大小,但是这个硬盘是用来安装操作系统的,什么意思呢?如果你把网站应用都跑在这个系统盘上也不是不可以,但是,一旦重装系统,所有的网站数据,比如用户资料都丢失了(因为操作系统和用户资料都放在了一张盘中),如果你是把数据资料挂载到数据盘上的,就能提高安全性。

查看是否有数据盘的命令是 fdisk -l,查看硬盘使用情况的命令是 df -h,我们先记住这一点知识就够用了,等到熟练掌握服务器的使用后,再来花时间研究如何挂载数据盘,其实就是格式化、分区这些更 Geek 一点的。

补充:除了密码登录,我们还可以以私钥认证的方式登录,可以给不同的用户分配不同的私钥,每一个用户相当于是我们任命一个钦差大臣,由他干具体的活儿,有的活儿需要国王也就是 root 授权,有的可能不用,那么在启用新用户和配置私钥之前,我们先把 root 权限下把一些基础工作做掉,这个放到下一节来处理。

小结

本节重点是弄清楚服务器操作系统的运行版本,以及如何升级到较新版,在新版本里面可以把基础配套组件也都一并安装。大家对于服务器的操作系统和版本一定要敏感,不同的操作系统之间的命令并不完全通用,同一个操作系统不同版本对于套件的支持程度也不同,遇到问题在搜索时可以把这些信息都带上,比如搜索 如何在 Ubuntu 16.04 上安装 MySQL 会比 如何在服务器安装 MySQL 的命中率要高很多。

大家如果用的是 CentOS 系统,流程是一样的,可以对比学习操作,遇到奇怪的问题,或者有了收获都分享给你的小伙伴们。
图片描述

}
立即订阅 ¥ 49.00

你正在阅读课程试读内容,订阅后解锁课程全部内容

一条龙的 Node·Vue·React 服务器部署
立即订阅 ¥ 49.00

举报

0/150
提交
取消
意见反馈 分销返利 帮助中心 APP下载
官方微信