Linux下sshd服务及服务管理命令

sshd

SSH为Secure Shell的缩写,是应用层的安全协议。SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

openssh-server

功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell

客户端连接方式

ssh 远程主机用户@远程主机ip 先rm -rf /root/.ssh/清掉之前的配置
ssh 远程主机用户@远程主机ip -X 调用远程主机图形工具
ssh 远程主机用户@远程主机ip command 直接在远程主机执行某条命令

sshkey加密

基于口令的安全认证
只要你知道自己帐号和口令,就可以登陆到远程主机。但会出现“中间人”攻击
ssh remoteuser@remotehost
ssh remoteuser@remotehost hostname

基于密匙的安全验证
你必须为自己创建一对密匙,把公匙放在需要访问的服务器上。
如果你要连接到SSH服务器上,客户端软件就会向服务器发出
请求,请求用你的密匙进行安全验证.服务器受到请求之后,先
在该服务器上你的目录下寻找你的公匙,然后把它和你发送过
来的公匙进行比较。如果两个密匙一致,服务器就用公用密匙加
密“质询”(challenge)并把它发送给客户端软件。客户端软
件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器

1.生成公钥私钥

ssh-keygen   ##生成公钥私钥工具
ls /root/.ssh/
id_rsa     ##私钥,就是钥匙
id_rsa.pub   ##公钥,就是锁

2.添加key认证方式

ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.101
ssh-copy-id        ##添加key认证方式的工具
-i             ##指定加密key文件
/root/.ssh/id_rsa.pub   ##加密key
root            ##加密用户为root
@172.25.254.101      ##被加密主机ip

3.分发钥匙给client主机

scp /root/.ssh/id_rsa root@172.25.254.201:/root/.ssh/

4.测试

ssh root@172.25.254.101    ##通过id_rsa直接连接不用输入用户密码

提升openssh的安全级别

1.openssh-server配置文件

vim /etc/ssh/sshd_config

78 PasswordAuthentication yes|no ##是否开启用户密码认证,yes为支持no为关闭
48 PermitRootLogin yes|no ##是否允许超级用户登录
49 AllowUsers student westos

##用户白名单,只有在名单出现的用户可以使用sshd建立shell
50 DenyUsers westos ##用户黑名单

2.控制ssh客户端访问

vim /etc/hosts.deny sshd:ALL ##拒绝所有人链接sshd服务

系统服务的控制

1.systemd
系统初始化程序,系统开始的第一个进程,pid为1

2.systemctl 命令

systemctl list-units    ##列出当前系统服务的状态
systemctl list-unit-files  ##列出服务的开机状态
systemctl status sshd    ##查看指定服务的状态
systemctl stop sshd     ##关闭指定服务
systemctl start sshd    ##开启指定服务
systemctl restart sshd   ##重新启动服务
systemctl enable sshd    ##设定指定服务开机开启
systemctl disable sshd   ##设定指定服务开机关闭
systemctl reload sshd    ##使指定服务重新加载配置
systemctl list-dependencies sshd   ##查看指定服务的依赖关系
systemctl mask sshd     ##冻结指定服务
systemctl unmask sshd    ##启动服务
systemctl set-default multi-user.target   ##开机不开启图形
systemctl set-default graphical.target    ##开机启动图形
setterm           ##文本界面设定color
vga=ask

3.服务状态

systemctl status 服务名称

active(running) ##系统服务已经初始化形成,加载过配置;正有一个或多个程序正在系统中执行;vsftpd就是这种模式

active(exited) ##仅执行一次就正常结束的服务;目前并没有任何程序正在系统中执行

active(waiting) ##正在执行当中;不过还得再等待其他事件才能继续处理

inactive ##服务关闭

enable ##服务开机启动

disable ##服务开机不自启