标签:服务 restart war 端口 aaa 密钥交换 wrap tcp 两种
课程目标
des 对称的公钥加密算法,安全低,数据传输速度快,==使用同一个秘钥进行加密或解密==
rsa 非对称的公钥加密算法,安全,数据传输速度慢,ssh默认的加密算法
公钥加密,用私钥解密前者加密后的秘钥
1.远程server收到client端用户的登录请求后,server端把自己的公钥发给用户
2、client端使用这个公钥,将密码进行加密
3、client将加密的密码发送给server端
4、远程server用自己的私钥,解密登录密码,然后验证其合法性
5、根据验证结果,给client相应的响应
非对称加密不是绝对安全
ssh是如何解决这个问题的?
基于用户密码的认证
[root@CentOs6 ~]# ssh 192.168.1.101
The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established.
RSA key fingerprint is 90:22:9b:2e:dd:7f:e7:fe:71:57:ac:ff:22:b5:c3:9b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.101' (RSA) to the list of known hosts.
root@192.168.1.101's password:
提示信息:无法确认主机的真实性,指纹是。。。。。,你确定要继续吗?
说明:理论上应该上对钥的确认,由于公钥通过RSA算法加密,太长,不好直接比较,所以给公钥一个hash的指纹,方便比较。
说明:当客户端输入yes确认对方的公钥指纹后,server端的公钥就会被存放到客户机的用户家目录里~/.ssh/known_hosts文件中,下次再访问就直接通过密码登录,不需要再确认公钥。
ssh不指定用户的话,访问之后默认当前用户,如果服务器端根本没有那个用户,那么无法连接。
- ssh root@192.168.1.101 或者 ssh -l root 192.168.1.101 (-l和用户名之间空格可无)
基于秘钥对的认证
需求:A主机免密码登录B主机
环境准备:编辑-->虚拟网络编辑器-->仅主机模式(选中两个选项,子网10.1.1.0,自定义DHCP设置,range 10.1.1.2~10.1.1.10)-->修改主机名和网络环境(静态IP)
基于秘钥对认证(免密码登录)--->==重点掌握==
需求:client端有一个用户user01,该用户指定root用户免密码登录server端
环境:client:10.1.1.3 server:10.1.1.2
思路:
步骤:
[user01@client ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user01/.ssh/id_rsa):
Created directory '/home/user01/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user01/.ssh/id_rsa.
Your public key has been saved in /home/user01/.ssh/id_rsa.pub.
The key fingerprint is:
ad:26:e8:e1:c5:95:ca:8c:c9:3b:c8:d6:f9:fe:46:ce user01@client
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| o |
| S . |
| . B o.. |
| . o*.B+o |
| +o++ oE |
| . ++oo. |
+-----------------+
[user01@client ~]$ ls .ssh/
id_rsa (私钥) id_rsa.pub (公钥)
(拷贝目的地是需求的用户)
[user01@client ~]$ scp .ssh/id_rsa.pub root@10.1.1.2:/root/.ssh/authorized_keys
或者
[user01@client ~]$ ssh-copy-id -i .ssh/id_rsa.pub root@10.1.1.2 (推荐使用)
The authenticity of host '10.1.1.2 (10.1.1.2)' can't be established.
RSA key fingerprint is a5:98:06:58:84:35:d3:f4:4c:f8:43:a1:a5:12:f5:8e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.1.1.2' (RSA) to the list of known hosts.
root@10.1.1.2's password:
Now try logging into the machine, with "ssh 'root@10.1.1.2'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
server端查看
[root@server ~]# cd .ssh
[root@server .ssh]# ls
authorized_keys
[root@server .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4IcI4Jb5PLg4rcKBcqdmuyNIbNZleUGD9oCtGtLc7Ta57LKVxGrB9TIX4tO4fEVyl7xbu2j/EsOSIH29LNNiubv+zkBhMecO258pvy1tDu2W5xdufcyR1F3cjNulDEVwo8TdKwIQ8/2vqhILJ9mTFP2ptOrkktuqjQ++staaRBgai6Ve8aaoV+l7XEXyyj2sV9s/u1WSa0MH32uGdsJqS8B8VzRFPYHYIBOsMmGTeVCfNQ2NRXH8fYB7YZbiExMoGMZPttq8uaQ18HvPbNa6f1wtDcH8ECaHRiFQz/lV7wGZI/18Dz9M3oXrLnDBEOSR2dahOYjxSTwHnf/E48Y/kw== user01@client
[user01@client ~]$ ssh root@10.1.1.2
Last login: Thu Apr 18 19:19:26 2019 from 10.1.1.1
[root@server ~]#
备注:即使root用户的密码改变了也不影响
仔细思考原理,基于秘钥对
练习:
禁止root用户远程登录
了解软件相关知识
[root@server ~]# rpm -ql openssh-server
/etc/rc.d/init.d/sshd // 启动脚本
/etc/ssh/sshd_config // 配置文件
/usr/sbin/sshd // 二进制命令
[root@server ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config
/usr/bin/scp
/usr/bin/sftp
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan
[root@server ~]# which ssh-keygen // 生成秘钥的工具
/usr/bin/ssh-keygen
[root@server ~]# rpm -qf /usr/bin/ssh-keygen
openssh-5.3p1-94.el6.x86_64
步骤:
[root@server ~]# cp /etc/ssh/sshd_config /opt/ // 备份
[root@server ~]# vim /etc/ssh/sshd_config // 修改配置文件
#PermitRootLogin yes
PermitRootLogin no // 权限设置为 no
重启服务
[root@server ~]# service sshd restart
[root@client ~]# ssh root@10.1.1.2 // 客户端尝试连接
root@10.1.1.2's password:
Permission denied, please try again. // 连接被拒绝
root@10.1.1.2's password:
目的是为了安全。
[root@server ~]# vim /etc/ssh/sshd_config
#Port 22
Port 10022
[root@server ~]# service sshd restart
[root@client ~]# ssh liuwei@10.1.1.2
ssh: connect to host 10.1.1.2 port 22: Connection refused
[root@client ~]# ssh liuwei@10.1.1.2 -p 10022
ssh: connect to host 10.1.1.2 port 10022: No route to host
1.网络问题
2.关闭服务器端防火墙,再次尝试,成功连接
ssh服务的访问控制
可以使用TCP_Wrappers工具做网络控制
/etc/hosts.allow 和 /etc/hosts.deny
如何判断一个服务支持TCP_Wrappers功能
rpm 包安装的服务:
[root@server ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f83b3ba9000)
源码包:
./configuer --enable-libxxxx // 配置时开启功能
需求:不允许10.1.1.3服务器来远程访问
vim /etc/hosts.deny
sshd:10.1.1.3
sshd:10.1.1.0/255.255.255.0(不支持写8、16、24) EXCEPT 10.1.1.3
sshd,vsftpd:.itcast.cc EXCEPT MissHou.itcast.cc(主机名)
[root@server ~]# man 5 hosts_access
[root@server ~]# vim /etc/hosts.deny
末尾添加sshd:10.1.1.3,保存退出,这是sshd程序的一个模块,无需重启sshd服务
测试验证
[root@client ~]# ssh liuwei@10.1.1.2 -p 10022
ssh_exchange_identification: Connection closed by remote host //说明成功
标签:服务 restart war 端口 aaa 密钥交换 wrap tcp 两种
原文地址:https://www.cnblogs.com/liuwei-xd/p/11020545.html