Linux运维之SSH

1.什么是SSH

SSH是Secure Shell的缩写,是一个建立在应用层上的安全远程管理协议。为远程登录会话和其他网络服务提供安全性。默认22端口。

2.SSH的登录验证模式

一篇博客图解SSH原理
b站视频尚硅谷2019年Linux运维+云计算②:Linux网络服务管理和MySQL+Redis数据库管理
关于这个有很多,需要反复看

3.配置SSH服务

3.1环境准备

两台Linux操作系统的主机(CentOS6.x),可以正常通信,主机名不同。
修改主机名方式:hostname node1,hostname node2,hostname node3
临时关闭防护功能:
iptables -F #清空防火墙规则
setenforce 0 #临时关闭SELinux
永久关闭防护功能:
chkconfig iptables off #设置防火墙开机不自启动
sed -i ‘7s/enforcing/disabled/’ /etc/selinux/config #永久关闭SELinux
注意:以上两条命令执行之后需要重启服务器

vim /etc/selinux/config出现下图:
Linux运维之SSH

先来看一下防火墙规则加载时候的状态:
iptables -L
Linux运维之SSH
临时把规则清空:
iptables -F
再iptables -L

Linux运维之SSH
查看SELinux的状态命令:getenforce
Linux运维之SSH
临时关闭:setenforce 0
Linux运维之SSH
永久关闭:服务每次开机都不自启,iptables开机 不自启
首先看一下iptables服务:chkconfig --list iptables
Linux运维之SSH
现在2345级别开机自启
关闭命令:chkconfig iptables off
Linux运维之SSH
打开vim /etc/selinux/config
Linux运维之SSH
将上图改为下图:
Linux运维之SSH
改完之后验证:
Linux运维之SSH
Linux运维之SSH

3.2用户密码验证

Linux 利用远程工具登录使用ssh格式:
ssh [email protected]
Linux与Linux互通使用ssh格式:
Linux运维之SSH
退出命令:exit

3.3**对验证

3.3.1Linux主机之间的**对登录验证

  1. 客户端生成**对文件
    ssh-****** -t rsa -b 2048
    -t 指定加密类型(rsa/dsa等)
    -b 指定**对加密长度
    询问1:执行过程中会询问保存位置,一般默认保存在当前用户家目录下的.ssh/目录
    询问2:是否对**文件进行加密
    加密:若加密,则在调用**文件时需要先验证**的密码,密码正确才能使用**文件
    不加密:若不加密,则**文件可以直接被调用,整个登录验证过程无需输入任何密码,即为免密登录
  2. 将公钥文件上传至服务器端
    ssh-copy-id 用户名@服务器IP地址
    #该用户名和要用来登录服务器的用户名一致
  3. 客户端尝试登录服务器
    ssh 用户名@服务器IP地址
    #**对验证优先级大于账户密码验证
    Linux运维之SSH
    询问过程直接回车
    Linux运维之SSH
    Linux运维之SSH
    Linux运维之SSH
    不需要密码

3.3.2Windows与Linux之间的**对登录验证

Linux运维之SSH
Linux运维之SSH
Linux运维之SSH
Linux运维之SSH
Linux运维之SSH
Linux运维之SSH

3.4禁止密码登录

当我们学会了使用**对进行验证后,建议生产环境下将账户密码登录功能关掉
配置文件:/etc/ssh/sshd_config
选项:PasswordAuthentication no
注意:ssh的配置文件中,并不是注释掉的就是不生效的,有些是默认生效,需要修改时一定要取消注释再修改
Linux运维之SSH
vim sshd_config进入:
Linux运维之SSH
重启sshd配置文件
Linux运维之SSH

3.5禁止SSHroot用户登录

你得用一个别的用户user1,再操作
Linux运维之SSH
Linux运维之SSH
Linux运维之SSH

3.6修改默认端口、限制 ssh 监听 IP

一般都会修改端口,尽量修改一个高位端口(范围1-65535)
Linux运维之SSH
Linux运维之SSH
Linux运维之SSH
用xshell时输入下面命令:
Linux运维之SSH
Linux运维之SSH
Linux连接Linux使用命令:ssh -p 端口号 [email protected]
Linux运维之SSH
限制IP登录:
Linux运维之SSH
Linux运维之SSH
想要虚拟机有多个IP地址,通过命令:ifconfig eth0:0 192.168.88.22
Linux运维之SSH
Linux运维之SSH
Linux运维之SSH