一.SSH服务概述
- SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。
- SSH协议对通信双方的数据传输进行了加密处理。
- 在centos7中,openssh服务器由openssh、openssh-server等软件包提供(默认已安装),并且已将sshd添加为标准的系统服务
- sshd服务端配置文件默认位于/etc/ssh/sshd_config,服务端的主程序/usr/sbin/sshd
- sshd服务使用的默认端口是TCP协议的22
- /etc/ssh/sshd_config中的参数如下
[root@localhost ~]# vim /etc/ssh/sshd_config
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
......
注:telnet协议使用udp的23端口,明文传输数据;mstsc远程桌面功能使用3389端口(windows系统);VNC(跨系统远程连接);TeamVlewer(手机与PC端之间远程连接)
二.ssh命令——远程安全登录
- 用户账号的的安全控制
- sshd服务默认允许使用root用户远程登录,当在Internet中使用时这是非常不安全的,一般是先以普通用户远程登录,进入安全的shell环境之后,使用su命令切换到root
- 在/etc/ssh/sshd_config的参数中
PermitRootLogin no //禁止root用户远程登录
PermitEmptyPasswords no //禁止空密码用户远程登录
MaxAuthTries 6 //最大重试次数为6
AllowUsers //白名单,仅允许用户远程登录
DenyUsers //黑名单,仅拒绝用户远程登录
黑名单与白名单注意不要同时使用
AllowUsers zhangsan root@192.168.43.132 //仅允许该IP地址的主机zhangsan,
root账户登录,多个用户之间用空格隔开
- sshd服务支持两种验证方式——密码验证和密钥对验证,相对来说,密钥对验证的方式比较安全。
- 密码验证的实例
[root@day01 ~]# ssh root@192.168.43.132
root@192.168.43.132's password:
Last login: Sun Nov 24 20:57:36 2019 from 192.168.43.147
[root@day02 ~]# exit
登出
Connection to 192.168.43.132 closed.
[root@day01 ~]#
- 限制root用户登录
在服务端设置禁止root用户被远程登录
[root@day02 ~]# vim /