目录
ssh优点
作用
SSH的 软件
公钥首次连接原理
ssh远程登录
shh命令 远程连接
直接连接先输入ssh IP
连接指定用户
在 /etc/ssh/sshd_config下面修改端口号
修改服务端配置文件
编辑 白名单,只能登录本机的mcb@用户
SSH服务的最佳实践
openSSH 服务器配置文件
ssh配置文件信息
存放ssh服务端的配置文件 /etc/ssh/sshd_config
编辑 使用密钥对免交互验证登录
1创建密钥
传送到远程主机
3登录验证
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度
sshd 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
SSH 客户端:finalshell xshell putty secureCRT MobaXterm
SSH 服务端:openSSH (Centos 7 默认安装)
①客户端发起连接请求
②服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
③客户端生成密钥对
④客户端用自己的公钥或会话ID,计算出一个值Res,并用服务端的公钥加密
⑤客户端发送加密后的值到服务端,服务端用密钥解密,得到Res
⑥服务端用解密后的Res或者是会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
⑦最终:双方各持有三个密钥,分别为自己的一对公钥、私钥、以及对方的公钥,之后的所有的通讯都会被加密。
每次使用sshd登录到其他主机,双方都会生成一个文件known_hosts把对方主机的公钥在.ssh/known_hosts文件里。
如何确定此台机器就是我要连的机器?
ssh [选项] [email protected]#指定登录用户、目标主机地址作为参数
ssh -p 20 [email protected] #-p为指定端口
第一次连接服务端机器会询问是否要验证公钥,同意就会自动获取服务端公钥
验证是否连接正确服务机,可查看服务端的公钥
在 /etc/ssh/sshd_config文件修改端口号
sshd服务的默认端口号是 22,如果不是此端口,需要 -p 来指定端口
[root@localhost ~]#vim /etc/ssh/sshd_config
[root@localhost ~]#systemctl restart sshd
在另一台虚拟机验证,使用客户机就需要指定端口号
提供了一种安全的方式管理和连接位于内部网络中的主机,同时限制了对内部网络的直接访问
#在目标服务端主机上模拟防火墙拒绝客户端连接,客户端使用跳板连接到目标主机上
[root@localhost .ssh]#iptables -A INPUT -s 192.168.11.5-j REJECT
[root@localhost ~]#ssh -t 192.168.11.9 ssh 192.168.11.5
#ssh 192.168.11.9 ifconfig
白名单:默认拒绝所有,只有白名单上允许的人才可以访问
黑名单:默认允许所有,只有黑名单上的用户让你不允许访问
注意 实验关闭防火墙 防护 黑白不能同时启用
root@localhost ~]#vim /etc/ssh/sshd_config
别的用户无法登录
#vim /etc/ssh/sshd_config
宿舍没有网停更
①建议使用非默认端口22
②禁止使用protocol version 1
③限制可登录用户(白名单)
④设定空闲会话超时时长
⑤利用防火墙设置SSH访问策略
⑥仅监听特定的IP地址、公网、内网
⑦基于口令认证时,使用强密码策略
⑧使用基于密钥的认知
⑨禁止使用空密码
⑩禁止root用户直接登录
11、限制ssh的访问频率和并发在线数
12、经常分析日志分离
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
在linux中实现ssh,是通过opsnSSH的sshd服务提供的
[root@localhost ~]#vim /etc/ssh/sshd_config
有密码又无需输入密码
客户端先输入 ssh-agent bash 将这个命令交给 bash 去管理
再输入 ssh-add 是将用户的私钥添加到运行中的 ssh-agent 中,这样在后续的SSH连接过程中,就不需要每次都手动输入私钥的密码了。一旦私钥被添加到ssh-agent 中,它会暂时保存解密后的私钥以供后续使用
宿舍没有网停更