
SSH(Secure Shell)是一种协议它使用客户端-服务器架构在两个系统之间提供安全通信并允许用户远程登录到服务 器主机系统。和其它远程沟通协议如 FTP 或 Telnet 不同SSH 会加密登录会话它会阻止入侵者从连接中收集未 加密的密码。想要使用 SSH 协议来远程管理 Linux 系统则需要配置部署 sshd 服务程序。sshd 是基于 SSH 协议开发的一款远程管理服务程序不仅使用起来方便快捷而且能够提供两种安全验证的方法基于密码的验证-------用账户和密码来验证登录基于密钥的验证-------需要在本地生成密钥对然后把密钥对中的公钥上传至服务器并与服务器中的公钥进行比较该方式相较来说更安全。/etc/ssh/sshd_configsshd的配置信息保存在/etc/ssh/sshd_config中参数作用Port 22默认的 sshd 服务端口ListenAddress 0.0.0.0设定 sshd 服务器监听的 IP 地址Protocol 2SSH 协议的版本号HostKey /etc/ssh/ssh_host_keySSH 协议版本为 1 时DES 私钥存放的位置HostKey /etc/ssh/ssh_host_rsa_keySSH 协议版本为 2 时RSA 私钥存放的位置HostKey /etc/ssh/ssh_host_dsa_keySSH 协议版本为 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.在客户端尝试登录此时无需输入密码也能登录远程传输scpscp是基于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没有优先级不做日志记录查看最近一小时的日志查看指定服务的日志查看指定时间段的日志