SSHD服务——软件包叫做openssh,服务名称叫做sshd
介绍:SSH协议,为安全外壳协议,是Secure Shell的缩写。
SSH是建立在应用层和传输层基础上的安全协议。
与Telnet的区别:Telnet使用明文传输,ssh是加密传输。
作用:sshd服务使用ssh协议进行远程控制,或者在计算机之间进行文件的传送。
服务安装:需要安装Openssh四个安装包,openssh软件包,提供了服务端后台程序和客户端的工具,
用来加密远程控件和文件传输中的数据,并由此替换苑来类似的服务。
注意:使用不是centos/redhat的linux系统,可能没有安装openssh,所以需要使用相应的命令去安装。
安装包:openssh服务需要4个安装包,可以使用以下命令查看,我的光盘镜像挂载在/mnt下。
[root@break log]# ls -al /mnt/Packages/openssh*
-rw-rw-r-- 1 root root 522344 4月 25 2018 /mnt/Packages/openssh-7.4p1-16.el7.x86_64.rpm
-rw-rw-r-- 1 root root 78040 4月 25 2018 /mnt/Packages/openssh-askpass-7.4p1-16.el7.x86_64.rpm
-rw-rw-r-- 1 root root 670336 4月 25 2018 /mnt/Packages/openssh-clients-7.4p1-16.el7.x86_64.rpm
-rw-rw-r-- 1 root root 469340 4月 25 2018 /mnt/Packages/openssh-server-7.4p1-16.el7.x86_64.rpm
他们对应的包的内容分别是:
openssh-7.4p1-16.el7.x86_64.rpm:包含openssh服务器和客户端的核心组件
openssh-askpass-7.4p1-16.el7.x86_64.rpm:支持对话框窗口的显示。(一般不用)
openssh-clients-7.4p1-16.el7.x86_64.rpm:openssh客户端软件包
openssh-server-7.4p1-16.el7.x86_64.rpm:openssh服务器软件包
sshd服务的前期学习环境的安装和简单配置(以自己的centos为例讲解)
本人安装的是centos7版本的操作系统,在新手开始接触linux服务的时候。
我们需要将防火墙以及selinux关闭并将和yum源配置好。
配置如下。如果有不懂的地方,可以查看我之前的博客。
服务器:192.168.1.63
客户端:192.168.1.64
systemctl stop firewalld
vim /etc/selinux/config
并修改如下的信息,重启系统
getenforce
echo "/dev/sr0 /mnt iso9660 defaults 0 0 " >> /etc/fstab
mount -a
ls /mnt
rm -rf /etc/yum.repos.d/*
cd /etc/yum.repos.d
vim CentOS7.repo
输入以下文件内容:
[CentOS7]
name=CentOS-server
baseurl=file:///mnt
enabled=1
gpgchech=0
/etc/selinux/config的修改后的内容
查看光盘镜像是否挂载成功
/etc/yum.repos.d/CentOS7.repo需要写入的东西
以上的这一切都安装好的话,我们还需要一台服务器,一台客户机,这里我直接使用VMware提供的克隆功能,克隆出来一台虚拟机来当作我们的客户端,然后对其内的IP地址进行修改,可以使用nmuti命令或者修改/etc/sysconfig/network-scripts/ifcfg-ens33中的内容,完成修改。
接下来就要进入我们的正题了,sshd服务
sshd的安装和主要的配置文件介绍
使用yum命令来进行sshd服务的安装和查看openssh服务的安装包
[root@break ~]# yum list all | grep openssh
[root@break ~]# yum install -y openssh openssh-clients openssh-server
使用rpm命令安装openssh和查看安装的路径
[root@break ~]# rpm -ivh /mnt/Packages/openssh*
[root@break ~]# rpm -ql openssh
/etc/ssh
openssh的重要配置文件有2个,一个是/etc/ssh/ssh_config,一个是/etc/ssh/sshd_config
/etc/ssh/ssh_config:是客户端的配置文件
/etc/ssh/sshd_config:是服务器端的配置文件
将sshd服务设置为开机自启动和开启
[root@break ~]# systemctl start sshd
[root@break ~]# systemctl enable sshd
[root@break ~]# systemctl status sshd
##查看一个服务是否开机自启动
root@break ~]# systemctl list-unit-files | grep sshd
sshd.service enabled
使用ssh来远程连接服务器(第一次需要密钥指纹的验证)——密码登录
2个命令:
ssh -l root 192.168.1.63
ssh root@192.168.1.63
ssh root@192.168.1.63 -p+端口号
[root@break ~]# ssh -l root 192.168.1.63
root@192.168.1.63's password:
Last login: Thu Mar 21 20:42:02 2019 from break.cn
Warining!from now on,all of your operation has been record!
[root@break ~]# ssh root@192.168.1.63
root@192.168.1.63's password:
Last failed login: Thu Mar 21 20:44:02 CST 2019 from break.cn on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Thu Mar 21 20:43:31 2019 from 192.168.1.39
Warining!from now on,all of your operation has been record!
远程连接的调优的重要配置,在服务器端的配置,sshd_config
配置文件的前提说明:#+空格表示这个是说明信息,#+信息表明这个是默认的配置文件,如果需要修改的话,我们需要去掉#
行数:默认信息
解释说明
1修改默认的ssh的端口号,端口号必须在66537之内
17:#Port 22
2ssh监听的网卡,内网或者外网,或者使用默认的缺省值0.0.0.0
19:#ListenAddress 0.0.0.0
3默认的等待时间
37:#LoginGraceTime 2m
4是否允许root登录
38:#PermitRootLogin yes
5默认的认证文件
47:AuthorizedKeyFile
6是否需要密码验证
65:#PasswordAuthentication yes
7是否允许空密码登录
64:#PermitEmptyPasswords no
8打印一个登录提示信息
105:#PrintMotd
9打印一个最后一次登录的信息
106:#PrintLastLog yes
10DNS解析,内网访问一般不需要反解域名,外网看情况
115:#UseDns yes
内容 | 设置 |
---|---|
LoginGraceTime | 无单位默认秒 |
PermitRootLogin | no |
PasswordAuthentication | no |
PermitEmptyPasswords | no |
PrintMotd | yes |
例子:修改sshd默认端口号为3389,并进行访问。
服务器端
客户端:
给sshd服务添加一些警告信息
服务器:
vim /etc/moty
输入你想要添加的信息,保存退出
systemctl restart sshd
客户端:
ssh root@192.168.1.63
输入密码,进行连接。
出现的第一行为上一次登录的信息
第二行为moty中的警告信息