SSH(Secure Shell)是一种协议,它使用客户端-服务器架构在两个系统之间提供安全通信,并允许用户远程登录到服务 器主机系统。和其它远程沟通协议,如 FTP 或 Telnet 不同,SSH 会加密登录会话,它会阻止入侵者从连接中收集未 加密的密码。
想要使用 SSH 协议来远程管理 Linux 系统,则需要配置部署 sshd 服务程序。sshd 是基于 SSH 协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:
基于密码的验证-------用账户和密码来验证登录;
基于密钥的验证-------需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;该方式相较来说更安全。
/etc/ssh/sshd_config
sshd的配置信息保存在/etc/ssh/sshd_config中
| 参数 | 作用 |
|---|---|
| Port 22 | 默认的 sshd 服务端口 |
| ListenAddress 0.0.0.0 | 设定 sshd 服务器监听的 IP 地址 |
| Protocol 2 | SSH 协议的版本号 |
| HostKey /etc/ssh/ssh_host_key | SSH 协议版本为 1 时,DES 私钥存放的位置 |
| HostKey /etc/ssh/ssh_host_rsa_key | SSH 协议版本为 2 时,RSA 私钥存放的位置 |
| HostKey /etc/ssh/ssh_host_dsa_key | SSH 协议版本为 2 时,DSA 私钥存放的位置 |
PermitRootLogin yes | 设定是否允许 root 管理员直接登录 |
| StrictModes yes | 当远程用户的私钥改变时直接拒绝连接 |
| MaxAuthTries 6 | 最大密码尝试次数 |
| MaxSessions 10 | 最大终端数 |
| PasswordAuthentication yes | 是否允许密码验证 |
| PermitEmptyPasswords no | 是否允许空密码登录(很不安全) |
使用ssh登录另一台服务器
登录的主机名为slave(192.168.143.145)
exit注销登录
查看配置文件/etc/ssh/sshd.config
取消第40行的注释后:第40行的信息是:让root管理员仅允许通过密钥方式验证远程登录服务器,这样可以降低root管理员用户以密码方式远程登录服务器的密码被爆破的风险,更安全。
如果将参数值该为no则不运行root管理员远程登录
在更改配置文件后要重启服务
安全密钥验证
1.在客户端生成密钥对
ssh-keygen 是用于生成、管理、转换密钥的工具。
-t:指定公钥类型
2.把客户端生成的公钥文件传送到远端服务器
3.在服务器设置使其只允许密钥验证登录
把该字段值设为no,拒绝传统的密码验证模式。重启sshd服务
4.在客户端尝试登录
此时无需输入密码也能登录
远程传输scp
scp是基于ssh协议在网络间进行安全传输的命令。
格式:scp 【参数】 本地文件 远程账户@远程ip地址:远程目录
参数:
-v:显示详细连接进度
-P:指定远端主机的sshd端口号
-r:用于传输文件夹
-6:使用ipv6协议
scp传输文件
scp下载远端主机文件
由于配置安全密钥时是手动指定了密钥的文件位置,所以需要用-i指定密钥文件路径
使用默认密钥文件文字时,则不用-i
检索日志信息
journalctl
用于检索和管理系统日志信息全称:journal(日志) control
格式: journalctl 参数
参数:
-k:内核日志
-b:启动日志
-u:指定服务
-n:指定条数
-p:指定类型
-f:实时刷新
--since:指定时间 今天(today)、近小时(hour)
--disk-usage:占用空间
日志信息等级
| 日志等级 | 说明 |
|---|---|
| emerg | 系统出现严重故障,比如内核崩溃 |
| alert | 应立即修复的故障,比如数据库损坏 |
| crit | 危险性较高的故障,比如磁盘损坏导致程序运行失败 |
| err | 危险性一般的故障,比如某个服务启动或运行失败 |
| warning | 警告信息,比如某个服务参数或功能出错 |
| notice | 不严重的一般故障,比如只是需要抽空处理的情况 |
| info | 通用性消息,用于提示一些有用的信息 |
| debug | 调试程序所产生的信息 |
| none | 没有优先级,不做日志记录 |