Linux3

CentOS服务器

CentOS服务器基本配置

查看IP信息的两个命令

ifconfig:比较旧的命令,net-tools中的命令

ip addr:比较新的命令,iproute2中的命令

image-20200317164221990

lo:本地回环的接口

enp0s3:对应以太网网络接口,其中10.0.2.15是一个内网的地址,其他虚拟机无法连接到这个服务器虚拟机,为了能够访问到,要改成局域网的ip地址

image-20200317174254977

image-20200317200210219

此时的地址为192.168.1.103

image-20200317174911314

onboot要为yes

连接远程终端

服务器的主要特色就是保持开机,始终连接Internet,提供服务,把连接到服务器的机器称为客户机

HTTP协议是Web最常用的传输网页的协议

HTTPS协议是HHTP协议的安全版本,表示安全的超文本传输协议,是HTTP的扩展,HTTP的所有传输内容都是明文,HTTPS锁传输的内容都经过加密

SSH是Secure SHell的缩写,表示安全的Shell,shell是英语壳的意思

Shell在计算机科学中,shell俗称壳,用来区别于核,一个是外壳,一个是核心,Shell指提供用户使用界面的软件(命令解析器),它类似于DOS下的command和后来的cmd.exe

Linux下有Bash等Shell程序

从以下两条主线来了解SSH协议

有哪些不同的加密方法

对称加密

Symmetric(对称的)-Key Encryption(加密)

对称加密算法用一个密钥来加密信息

密钥加密

image-20200317193557678

密钥解密

image-20200317193916305

对称加密中对称的意思是指加密和解密使用的是同一个密钥,因此加密方和解密方都需要知道这个密钥

对称加密的致命缺陷:必须谨慎传递密钥

为了加密用于对称加密的密钥,将用另一种方法:非对称加密

非对称加密

Asymmetric(非对称的)-Key Encryption

对称加密方法中,只用一个密钥来进行加密和解密

非对称加密方法中,用一个密钥来加密,用另一个来解密,两个密钥不一样,所以是非对称

非对称加密的两个密钥

一个是公钥(Public Key),用于加密,一个是私钥(Private Key),用于解密

公钥只用来加密,用非对称加密的算法,我们就只能用私钥来解密

假设有如下一对密钥

公钥:2K49c8uE

私钥:5z3sR6Ln

密钥加密

image-20200317212330202

密钥解密

image-20200317213041041

公钥可以在网络上以明文传输,毕竟是公开的密钥,但是用于解密的私钥却不能被公开传输,需要保管好

非对称算法不止一种,在这个大家族中,最有名的要数RSA算法

用SSH创建一个安全的通信管道

SSH结合使用非对称加密和对称加密两种方法

首先使用非对称加密安全的传输对称加密的密钥,之后,就一直使用对称加密的密钥来作为加密和解密的手段

非对称加密的一个缺陷

非对称加密台消耗电脑资源,非对称加密要比对称加密漫大概100~1000倍,因此两个电脑之间首先交换对称加密的密钥(用非对称加密的方式),之后就可以用对称加密来通信,会更快捷,非对称加密只是在通信之处用于交换对称加密的密钥

image-20200318090347627

image-20200318090922704

image-20200318090852439

image-20200318091127105

配置成SSH

两种情况

第一种情况:你已经租用了一台服务器,这台服务器因为已经配置好了SSH服务器,所以什么都不需要做

第二种情况:你没有租用一台服务器(大多数人的情况)

安装openssh

openssh是SSH协议的免费开源实现,官网https://www.openssh.com

openssh分为客户端和服务端,客户端:openssh-client,服务端:openssh-server

安装openssh客户端

如果只想用ssh远程连接到别的机器,那只需要安装opensh-client

sudo yum install openssh-clients

安装openssh服务端

如果想要使自己的机器开放ssh服务,则需要安装openssh-server

sudo yum install openssh-server

安装完成后,它会自动开启sshd这个守护进程

服务器安装SSH服务

安装SSH:yum install openssh-server

启动SSH:systemctl start(restart) sshd

设置开机运行SSH:systemctl enable sshd

列出服务端开机启动的程序:systemctl list-unit-files

客户端安装SSH工具

Windows客户端:安装Putty、XShell或SecureCRT

Linux客户端:sudo yum install openssh-clients

macOS客户端:默认已经安装SSH客户端

客户端通过SSH连接服务器

Linux连接:ssh root@192.168.1.105

image-20200318112420184

macOS与Linux相同

用config文件配置SSH

config文件可以配置SSH,方便批量管理多个SSH连接

全局config文件

全局的config文件有两个

SSH客户端的配置:/etc/ssh/ssh_config

SSH服务端的配置:/etc/ssh/sshd_config

查看config文件的使用手册,SSH服务端config文件的使用手册:man sshd_config,SSH客户端config文件的使用手册:man ssh_config

客户端config文件的常用配置参数

image-20200318125924702

服务端config文件的常用 配置参数

服务端config参数 作用
Port sshd服务端口号(默认22)
PermitRootLogin 是否允许以root用户身份登录(默认可以)
PasswordAuthentication 是否允许密码验证登录(默认可以)
PubkeyAuthentication 是否允许公钥验证登录(默认可以)
PermitEmptyPasswords 是否允许空密码登录(不安全,默认不可以)

修改全局的config文件后,重启sshd服务使之立即生效sudo systemctl restart sshd

局部config文件

只有客户端才有局部config文件

root用户的家目录下如果没有.ssh目录,则使用一下命令来生成.ssh目录ssh localhost

局部的客户端config文件在用户家目录的.ssh隐藏目录中,~/.ssh/config,此文件一般默认是没有创建的,可以手动创建,创建完之后,会把~/ssh/config的权限修改为600,chmod 600 ~/.ssh/config

image-20200318132126931

客户端config文件的配置

image-20200318132445330

image-20200318133123660

SSH的config文件可以帮助我们配置SSH,config文件分为全局的config文件和局部的config文件,全局的config文件会对所有用户生效,请谨慎修改,修改全局的config文件后,重启sshd服务使之立即生效

sudo systemctl restart sshd

SSH免密码登录

SSH有两种安全验证的方法

基于口令和基于密钥

基于口令的就是用账户和密码来登录验证

基于密钥的验证就是客户端生成密钥对(公钥和私钥),把公钥上传到服务器并与服务器的公钥进行比较,这种验证登录的方法更加安全,也称为公钥验证登录

公钥验证登录

第一步,在客户机中生成密钥对(公钥和私钥)ssh-keygen默认使用RSA非对称加密算法

~/.ssh/目录下,会生成两个文件,id_rsa.pub是公钥,id_rsa是私钥

image-20200318150930226

第二步,把客户机的公钥传送到服务器,ssh-copy-id root@192.168.1.105

ssh-copy-id把客户机的公钥追加到服务器的一个文件authorized_keys,它在~/.ssh/authorized_keys

设置SSH免密码后仍想使用密码登录

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no用户名@host

文章目录
  1. 1. CentOS服务器
    1. 1.1. CentOS服务器基本配置
      1. 1.1.1. 查看IP信息的两个命令
    2. 1.2. 连接远程终端
    3. 1.3. 从以下两条主线来了解SSH协议
      1. 1.3.1. 有哪些不同的加密方法
        1. 1.3.1.1. 对称加密
        2. 1.3.1.2. 非对称加密
        3. 1.3.1.3. 非对称加密的两个密钥
      2. 1.3.2. 用SSH创建一个安全的通信管道
      3. 1.3.3. 非对称加密的一个缺陷
      4. 1.3.4. 配置成SSH
        1. 1.3.4.1. 安装openssh
        2. 1.3.4.2. 安装openssh客户端
        3. 1.3.4.3. 安装openssh服务端
    4. 1.4. 服务器安装SSH服务
    5. 1.5. 客户端安装SSH工具
    6. 1.6. 客户端通过SSH连接服务器
    7. 1.7. 用config文件配置SSH
      1. 1.7.1. 全局config文件
      2. 1.7.2. 局部config文件
    8. 1.8. SSH免密码登录
      1. 1.8.1. 公钥验证登录
      2. 1.8.2. 设置SSH免密码后仍想使用密码登录
|