SSH远程管理
SSH远程控制介绍
SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的telnet、rsh、rcp等应用相比,SSH协议提供了更好的安全性。
OpenSSH服务器
SSH协议
ASP站长网为客户机提供安全的shell环境,用于与远程管理
默认端口:TCP 22
OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:ssh_config
服务监听选项
端口号、协议版本、监听IP地址
禁用反向解析
#Port 22 //端口号
#AddressFamily any
#ListenAddress 0.0.0.0 //ipv4监听地址
#ListenAddress :: //ipv6监听地址
用户登录控制
禁止root用户、空密码用户
登录时间、重试次数
AllowUsers、DenyUsers(黑白名单,允许和拒绝)
#LoginGraceTime 2m //会话时间
#PermitRootLogin yes //是否进制root登录
#StrictModes yes //是否验证访问权限
#MaxAuthTries 6 //验证次数6次
#MaxSessions 10 //访问的最大链接数
#PubkeyAuthentication yes //是否验证公钥
登录验证对象
服务器中的本地用户账户
登录验证方式
密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的私钥、服务端公钥是否匹配
使用SSH客户端程序
ssh命令——远程安全登录
scp命令——远程安全复制
sftp命令——安全FTP上下载
get 下载
put 上传
bye 退出
Demo
在VMware 15中打开两天Linux系统,一台用作主服务器(tast01IP地址:192.168.144.133),一台用作远程终端(tast02IP地址:192.168.144.135),使用SSH协议登录主服务器
使用SSH服务
1、在tast01中进入SSH主服务器配置文件,更改配置文件条目,开启SSH服务。
[root@tast01 ~]# vim /etc/ssh/sshd_config //进入编辑服务器配置文件信息
Port 22 //开启端口
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
:wq //保存退出
[root@tast01 ~]# systemctl restart sshd //重启SSH服务
2、在tast02中使用SSH服务登录tast01。
[root@tast02 ~]# ssh root@192.168.144.133 //使用SSH服务登录tast01服务器
The authenticity of host '192.168.144.133 (192.168.144.133)' can't be established.
ECDSA key fingerprint is SHA256:B8IsZOFG7FbtVkIK+dMILmo0iA4OEIeVGY0GnnCbXhk.
ECDSA key fingerprint is MD5:c2:d8:09:17:de:6e:ec:07:06:1b:ac:b6:1e:bd:62:09.
Are you sure you want to continue connecting (yes/no)? yes //询问是否建立会话
Warning: Permanently added '192.168.144.133' (ECDSA) to the list of known hosts.
root@192.168.144.133's password: //输入密码
Last login: Mon Sep 9 13:59:09 2019
[root@tast01 ~]# //成功登录tast01
[root@tast01 ~]# exit //退出
登出
Connection to 192.168.144.133 closed.
[root@tast02 ~]# //回到tast02端口
3、回到tast01服务器,更改SSH服务器配置文件,禁止root用户登录。然后再创建siti用户
[root@tast01 ~]# vim /etc/ssh/sshd_config //进入编辑主配置文件
#LoginGraceTime 2m
PermitRootLogin no //开启是否启用禁用root登录,更改yes为no,禁止root用户登录
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
:wq //保存退出
[root@tast01 ~]# systemctl restart sshd //重启服务
[root@tast01 ~]# useradd siti //创建siti普通用户
[root@tast01 ~]# passwd siti //设置用户密码
更改用户 siti 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@tast01 ~]# id siti //查看新建用户siti信息
uid=1001(siti) gid=1001(siti) 组=1001(siti)
[root@tast01 ~]# id sun //查看用户sun信息
uid=1000(sun) gid=1000(sun) 组=1000(sun),10(wheel)
4、使用tast02登录tast01的root用户,看更改的服务是否生效
[root@tast02 ~]# ssh root@192.168.144.133 //使用SSH服务登录tast01服务器root用户
root@192.168.144.133's password: //输入密码登录
Permission denied, please try again. //拒绝登录root
root@192.168.144.133's password:
Permission denied, please try again.
root@192.168.144.133's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). //尝试输入密码三次后弹出,拒绝登录
[root@tast02 ~]# ssh siti@192.168.144.133 //使用SSH服务登录siti用户
siti@192.168.144.133's password:
[siti@tast01 ~]$ //成功登录tast01服务器siti用户
[siti@tast01 ~]$ su - root //再siti用户下使用su切换root用户
]密码: //输入密码
上一次登录:一 9月 9 15:16:00 CST 2019从 192.168.144.135pts/1 上
最后一次失败的登录:一 9月 9 15:33:03 CST 2019从 192.168.144.135ssh:notty 上
最有一次成功登录后有 3 次失败的登录尝试。
[root@tast01 ~]# //成功登录root用户。
[root@tast01 ~]# exit //退出
登出
[siti@tast01 ~]$ exit //退出
登出
Connection to 192.168.144.133 closed.
[root@tast02 ~]# //回到tast02用户
5、通过上面的操作我们禁止了远程登录root但是可以通过普通用户切换登录,这个时候我们就可以开启tast01系统中的pam认证,来提高系统的安全性。
[root@tast01 ~]# vim /etc/pam.d/su //进入编辑pam配置文件
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth required pam_wheel.so use_uid //开启pam认证
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
~
~
~
:wq //保存退出
6、查看是否还能够通过siti用户切换到root用户
[root@tast02 ~]# ssh siti@192.168.144.133 //登录siti用户
siti@192.168.144.133's password: //输入密码
Last failed login: Mon Sep 9 16:09:32 CST 2019 from 192.168.144.135 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Sep 9 15:47:20 2019 from 192.168.144.135
[siti@tast01 ~]$ su - root //登录siti用户,并切换root用户
密码: //输入密码
su: 拒绝权限 //权限拒绝,无法切换
[siti@tast01 ~]$
7、因为设定了权限,siti用户不在wheel组,所以无法用siti用户切换root用户,我们可不可以通过siti用户切换wheel组中sun用户,再用sun用户切换root,看是否可以。
[siti@tast01 ~]$ su - sun //切换sun用户
密码: //输入密码
su: 拒绝权限 //权限拒绝,无法切换
[siti@tast01 ~]$
9、回到tast01中开启SSH服务配置密码验证次数服务
[root@tast01 ~]# vim /etc/ssh/sshd_config //进入服务器配置文件
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 6 //开启密码验证次数
#MaxSessions 10
:wq //保存退出