目录
###1.实验环境的配置###
###2.ssh命令的用法及问题解决###
##ssh的服务的用途##
##当密钥被删除或丢失##
##ssh常用参数##
###3.sshd key认证 ###
##认证类型##
方法一:
##生成非对称密钥
方法二:
##对服务器加密
1)添加端口
2)禁止超级用户登录
3)设置黑名单
4)设置白名单
5)限制所有用户登录以输入密码方式登录的权力
###1.实验环境的配置###
两台主机 ##配置主机名称#server #client
#sever ## hostnamectl set-hostname westos_server.westos.org
#client ## hostnamectl set-hostname westos_client.westos.org
配置好两台主机的网络,使两台主机可以通信
###2.ssh命令的用法及问题解决###
##ssh的服务的用途##
#作用:可以实现通过网络在远程主机中开启安全shell的操作
#主配置文件 ----> /etc/ssh/sshd_conf
#安装包 ----> openssh-server
#默认端口 ----> 22
#客户端命令 ----> ssh
rpm -qa | grep openss1
rpm -qa | grep openssh ##安装penssh服务功能(系统默认安装)
systemctl status sshd ##查看sshd服务状态是否开启
ssh -l root 192.168.95.100 ##连接远程主机192.168.95.100,以远程主机身份开启shell
连接远程主机后,在客户端(client)执行命令,作用结果在远程主机服务器(server)生效
例:touch file1 file2 file3 ##建立文件在远程主机生效
##当密钥被删除或丢失##
连接远程主机的时候在客户端(client)会生成一个key
这个密钥在~/.ssh/known_hosts 文件中
cat ~/.ssh/known_hosts
#在远程主机端
cd /etc/ssh/
#假如该密钥被删除或丢失,会重新生成一个新的密钥
rm -rf /etc/ssh/ssh_host_*
systemctl restart sshd ##重新启动sshd会生成新的密钥
ssh -l root 192.168.155.100 ##再次连接该远程主机(server)时会出现报错
#解决方法:
vim /root/.ssh/known_hosts ##查看/root/.ssh/known_hosts
##将指定文件删除即可(将第二行删掉)
ssh -l root 192.168.155.100 ##重新连接
##ssh常用参数##
ssh -l root 192.168.155.100 ##指定登录用户
ssh -i ##指定私钥
ssh -Xl root 192.168.155.100
gedit ##连接远程主机然后打开图形
ssh -Xl root 192.168.155.100 gedit ##连接远程主机并打开图形
ctrl+z ##打入后台
bg 1 ##调回前台
ssh -fXl 192.168.155.100 gedit ##后台运行
ssh -o ##指定连接参数
# ssh -l root192.168.155.100 -o "StrictHostKeyChecking=no" 首次连接不需要输入yes
ssh -t ##指定连接跳板
#ssh-l root 192.168.155.250 -t ssh -l root 192.168.155.100
##先登录192.168.155.250主机然后再跳到192.168.155.100主机
###3.sshd key认证 ###
##认证类型##
#对称加密
加密和解密是同一串字符
容易泄漏
可暴力破解
容易遗忘
#非对称加密
加密用公钥,解密用私钥
不会被盗用
攻击者无法通过无密钥方式登录服务器
方法一:
##生成非对称密钥
##生成非对称密钥
ssh-keygen ##建立密钥
ssh -l root 192.168.155.100 ##连接远程主机(需要密码)
mv /root/.ssh/id_rsa* /mnt/ ##将密钥移动到/mnt/目录中
##密钥默认在家目录中.ssh文件中
ssh-copy-id -i /mnt/id_rsa.pub root@192.168.155.100
##将密钥付给远程主机
ssh -l root 192.168.155.100 -i /mnt/id_rsa
##让远程主机读取密钥
ssh -l root 192.168.155.100 ##连接远程主机(不需要密码)
方法二:
##对服务器加密
1)添加端口
1)添加端口
setenforce 0
vim /etc/ssh/sshd_config
删除“#” ,port22 <====> port2222 ##修改端口
systemctl restart sshd
systemctl status sshd
ssh -l root 192.168.155.100 ##客户端连接远程主机失败,显示端口错误
firewall-cmd --permanent --add-port=2222/tcp
##服务器端添加2222防火墙端口
ssh -l root 192.168.155.100 -p 2222
##客户端连接远程服务器同时指定端口
2)禁止超级用户登录
vim /etc/ssh/sshd_config ##将文件46行"permitRootLogin yes"改为"permitRootLogin no"
systemctl restart sshd
ssh -l root 192.168.155.100 ##在客户端远程登录服务器 ,登录失败
3)设置黑名单
vim /etc/ssh/sshd_config ##添加DenyUsers westos 禁止westos用户登录
ssh -l westos 172.168.155.100 ##westos用户登录失败
4)设置白名单
vim /etc/ssh/sshd_config ##添加AllowUsers westos 只允许Linuxrui用户远程登录
systemctl restart sshd
ssh -l linuxrui 192.168.155.100 ##用户linuxrui远程登录成功
5)限制所有用户登录以输入密码方式登录的权力
vim /etc/ssh/sshd_config ##第73行将“PasswdAuthentication yes" 改为”PasswdAuthentication no"
systemctl restart sshd
ssh -l root 192.168.155.100 ##客户端没有权力以输入密码登录远程服务器主机
##只有通过指定密钥的方式远程登录



