一、SSH客户端应用的使用
- 1)ssh 远程登录
ssh [-p 端口] 用户名@目标主机IP
ssh [-p 端口] 用户名@目标主机IP 命令 #临时登录目标主机执行命令后退出
- 2)scp 远程复制
scp [-P 端口] [-r] 本机文件/目录路径 ... 用户名@目标主机IP:绝对路径 #将本地的文件/目录复制到目标主机
scp [-P 端口] [-r] 用户名@目标主机IP:绝对路径 本机路径 #将目标主机的文件/目录复制到本机
- 3)sftp 文件传输
sftp [-P 端口] 用户名@目标主机IP
> get put cd ls
远程连接的方式 ssh(tcp/22端口,密文传输) telnet(tcp/23端口,明文传输)
二、SSH的验证方式
- 密码验证:使用账号和密码进行验证
PasswordAuthentication yes
- 密钥对验证:使用客户端创建的密钥对进行验证
ssh密钥对的创建和使用:
- 1)确保服务端开启了ssh密钥对验证 /etc/ssh/sshd_config --> PubkeyAuthentication yes
- 2)在客户端创建密钥对 ssh-keygen [-t rsa/dsa/ecdsa] #生成的密钥对默认存放在当前用户家目录的 .ssh/ 目录中,私钥是留给自己使用的,公钥(XXX.pub)是给服务端使用的
- 3)上传公钥至服务端 ssh-copy-id [-i 公钥文件] 用户名@目标主机IP #公钥信息会自动保存到服务端的 ~/.ssh/authorized_keys 文件里
- 4)客户端 ssh 远程登录,使用密钥对的密码进行验证
注:密钥对在客户端是谁创建的,只能谁使用;密钥对上传给服务端的哪个用户,那么就只能使用那个用户去登录
ssh密钥对免交互登录:
1)使用空密码的密钥对
ssh-keygen 一路回车,不设置密码
ssh-copy-id
2)创建ssh会话代理(只能在当前会话中有效)
ssh-agent bash
ssh-add
一键操作的命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p 'abc1234' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.80.20
三、TCP服务
TCP Wrappers 为支持TCP Wrappers的服务程序提供访问控制的功能,要么允许访问,要么拒绝访问
判断是否支持TCP Wrappers: 执行命令 ldd $(which 程序名称) | grep libwrap 查看是否有 libwrap.so.0 => /lib64/libwrap.so.0
访问策略原则:先看 /etc/hosts.allow 是否有匹配的策略,有则直接允许访问
再看 /etc/hosts.deny 是否有匹配的策略,有则拒绝访问
如果以上两个文件都没有匹配的策略,则默认允许访问
策略格式: <程序列表>:<客户端地址列表>
sshd,vsftpd:192.168.80.13,192.168.80.14
ALL:ALL
sshd:192.168.80.*
sshd:192.168.80.0/255.255.255.128