linux系统中sshd服务及服务管理命令

什么是sshd服务

客户端主机通过网络在服务端主机中开启服务端主机shell的服务
客户端通过网络连接服务端,并且控制服务端,也就是客户端开启了服务端的shell
ssh (安全外壳协议)
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

实验操作

本实验是在两台虚拟机中做,server主机为服务端,desktop主机为客户端
主机的ip不知道可以采用命令查看 :
在虚拟机的shell中输入 ip addr show eth0 即可查看
在真机的shell中输入 ip addr show br0 即可查看

步骤一:先在真机中打开两个虚拟机 desktop和server
linux系统中sshd服务及服务管理命令
步骤二:配置两台主机的ip
desktop主机的ip为172.25.254.100,该主机用于客户端测试
server主机的ip为172.25.254.200,该主机用于服务端配置

linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
步骤三:在两台主机的shell中分别删除 /root/.ssh/(删除这个目录rm -rf /root/.ssh 或者删除这个目录下的文件rm -rf /root/.ssh/*均可以)
linux系统中sshd服务及服务管理命令
步骤四:然后改两个主机名字
在客户端主机输入 hostnamectl set-hostname client.westos.com(desktop主机)
在服务端主机输入 hostnamectl set-hostname server.westos.com(server主机)
linux系统中sshd服务及服务管理命令
用客户端主机连接服务端主机
在客户端主机中输入: ssh [email protected](server主机的ip)
linux系统中sshd服务及服务管理命令
在客户端主机当中输入 ssh [email protected] -X,使客户端可以控制服务端主机的图形界面
linux系统中sshd服务及服务管理命令

远程复制

只需要知道对方的ip及存在的帐号和密码就可以进行远程文件上传和下载
1)scp file [email protected]:dir ##远程上传
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
2)scp [email protected]:file dir ##远程下载
linux系统中sshd服务及服务管理命令

sshd服务的免密操作(**认证)

(1)为什么要进行免密操作?
如果客户端知道服务端主机的ip地址和密码,就可以远程操控服务端
如果任意一个客户端知道服务端主机的ip地址和密码,并且知道它里面的重要文件存放路径
那么就可以拷贝服务端的文件
这样的操作在实际企业当中非常不安全
(2)怎样进行免密操作?
采用钥匙和锁的方式,服务端想让客户端什么时候连就什么时候连
步骤一:在服务端输入:ssh-****** ,生成钥匙和密码
id_rsa是钥匙 id_rsa.pub是锁
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
备注:
在服务端输入 ssh-****** 三次回车 ,每次回车都有原因
第一次回车是钥匙和密码存放路径(可以直接回车,存放在默认路径下)
第二次回车是密码(可以直接回车,不设置密码)
第三次回车也是密码(可以直接回车,不设置密码)

步骤二:在服务端输入:ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
先给自己上锁,也就是给服务端上锁
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
步骤三:修改服务端 /etc/ssh/sshd_config 配置文件
并重启服务
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
步骤四:在服务端输入:scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
将密码传给客户端
客户端/root/.ssh/的这个文件(目录)必须存在 ,相当于上传
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
步骤五:在客户端测试 进行服务端免密登陆
linux系统中sshd服务及服务管理命令
步骤六: 移除或者重命名服务端的authorized_keys文件,客户端远程连接失败
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令

sshd的安全设定

(1)为什么要进行安全设定?
因为服务端的root权限太大,客户端如果使用服务端的root权限极不安全
为了保证ssh服务器的安全性:服务端开放的权限不能太多,一般不太让客户端主机用服务端主机的超级用户root
(2)常用的安全设定
/etc/ssh/sshd_config的第78行 :是否允许服务端的任意一个存在的用户通过登陆系统的密码做sshd的认证
/etc/ssh/sshd_config的第48行: 是否允许服务端的root用户通过sshd的服务认证
加入AllowUesrs student westos: 设定用户的白名单,此名单里面的用户可以通过sshd服务认证 (文件里不存在 直接输入即可 多个用户用空格隔开)
加入DenyUsers westos :设定用户的黑名单,此名单里面的用户不可以通过sshd认证

每次改完一个参数重启才会起作用:在服务端systemctl restart sshd.service
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
设定sshd服务的指定端口号(修改端口)

操作:setenforce 0 (临时生效可以直接用setenforce 0 )
systemctl stop firewalld (关闭火墙)
netstat -antlupe |grep sshd 查看系统的接口
vim /etc/ssh/sshd_config
port 8888
systemctl restart sshd.service
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
客户端测试需要指定端口号
linux系统中sshd服务及服务管理命令

固定22端口到指定的ip

ListenAddress默认全开 现指定为172.25.254.200
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令
linux系统中sshd服务及服务管理命令