目录
openssh的介绍
1.首先介绍一下ssh(secure shell protocol),ssh服务是一个守护进程,系统后台监听客户端的连接。ssh服务端的进程名叫sshd,负责实时监听客户端的请求,包括公共密钥交换等信息。ssh服务端由两部分组成:openssh(提供ssh服务)和 openssl(提供加密服务)。
2.openssh是ssh服务端软件之一
软件安装名称:Openssh-server
配置文件:/etc/ssh/sshd_conf
默认端口:22
客户端命令:ssh
ssh命令的用法
与ssh服务相关的指令:
1.rpm -qa openssh/openssl #查询openssh、openssl软件
2.ps -ef | grep sshd #查询sshd进程
3.netstat -a | grep sshd #查看ssh端口(-a 显示所有的socket)
4.service sshd start #开启ssh服务
5.service sshd stop #关闭ssh服务
6.service sshd reload #停止sshd进程后重启(推荐)
service sshd restart #杀死sshd进程后重启(不推荐)
7.远程登录 见下
使用 ssh remoteUSER@remoteIP 指令(对方的用户名和ip),参数如下:
1.ssh-l #指定登录用户
2.ssh-i #指定密钥
3.ssh-x #开启图形
4.ssh-p #指定端口
5.ssh-f #后台运行
6.ssh-o #指定连接参数
7.ssh-t #指定连接跳板
对于指令1:
1.首先配置两台虚拟机的ip地址
(1)查看虚拟机的网关,子网ip等信息
(2)配置虚拟机1的ip地址
根据前面查看的虚拟机网关等信息,配置打勾的这四项。
注意:
BOOTPROTO=static 静态ip
BOOTPROTO=dhcp 动态ip
配置完成后,别忘记reboot。
查看虚拟机1的ip地址是否配置成功。可以使用 ipconfig 指令,也可以使用 ip addr show 指令。
注意: 配置虚拟机的ip地址时,既可以采用上述的命令行配置的方法,也可以使用 nm-connection-editor 指令打开图形化界面进行配置。
(3)以同样的步骤配置虚拟机2
2.使用虚拟机1连接虚拟机2
使用westos身份连接上之后,在虚拟机2的Desktop中新建三个file文件。
对指令3的演示:
虚拟机1连接虚拟机2
虚拟机2开启gedit
关闭虚拟机2的gedit发现,虚拟机1只是远程开启了虚拟机2的图形程序gedit,而没有连接上虚拟机2。
对指令6的演示:
虚拟机1连接虚拟机2
虚拟机2开启gedit
在虚拟机2中关闭gedit,发现虚拟机1只是开启了虚拟机2中的gedit而已。
另外:去掉公钥确认
对指令7的演示:
使用ip地址为192.168.145.4的主机作为跳板,连接ip地址为192.168.145.5的主机。
openssh的key认证
认证方式有两种:
1.密码认证
(1)至少6个字符
(2)包含数字、字母、下划线特殊符号等
(3)易泄露
(4)可被暴力破解
(5)密码容易丢失
2.密钥认证
(1)新型认证方式,分为公钥及私钥
(2)公钥上传服务器
(3)私钥配对认证,不会被盗用
(4)攻击者一般无法通过密钥登录服务器
关于openssh的文件
1.~/.ssh/authorized_keys:用于保存用户的公钥文件
2.~/.ssh/known_hosts:辨别服务器的唯一散列码
3.~/.ssh/id_rsa:用户的私钥文件
4.~/.ssh/id_rsa.pub:用户的公钥文件
openssh的key认证
1.支持RSA和DSA加密
2.加密方法:
使用 ssh-keygen 指令生成密钥
使用 ssh-copy-id -i keyfile remoteUSER@remoteIP 指令上传密钥
openssh key认证实验
1.在虚拟机1中生成密钥对
2.将虚拟机1的公钥拷贝到虚拟机2
我们可以在虚拟机2中查看一下虚拟机1传过来的公钥文件
现在测试一下虚拟机1是否能免密登录到虚拟机2
成功实现免密登录!
补充: 将公钥从虚拟机1传到虚拟机2的时候,还可以使用 scp 指令。
查看虚拟机2中公钥
openssh的安全优化
sshd服务常用相关配置参数
1.配置文件:/etc/ssh/sshd_config
2.配置参数
(1)Port 22:监听端口
(2)Protocal 2:指定协议版本
(3)ListenAddress:绑定ip
(4)HostKey:设定HostKey密钥路径
(5)PermitRootLogin:设定超级用户是否能登录
(6)PubkeyAuthentication:公钥认证开关
(7)PasswordAuthentication:密码认证开关
(8)AllowUsers:用户白名单
(9)DenyUsers:用户黑名单
sshd配置实验
1.修改PasswordAuthentication选项
(1)编辑虚拟机2的/etc/ssh/sshd_config文件,注意使用root身份,否则会报错。
(2)将PasswordAuthentication由yes改为no。
(3)重启一下虚拟机2的sshd服务。
(4)用虚拟机1连接虚拟机2发现,即使知道密码也不允许登录,虚拟机2直接拒绝。
2.修改PubkeyAuthentication选项
(1)编辑虚拟机2的/etc/ssh/sshd_config文件,同样使用root身份。
(2)将PubkeyAuthentication由yes改为no。
(3)重启虚拟机2的sshd服务。
(4)在虚拟机1中生成密钥并传送到虚拟机2中。
(5)发现即使虚拟机2有虚拟机1的公钥,虚拟机1连接虚拟机2时仍然需要输入虚拟机2的密码。
3.修改DenyUsers选项
(1)在虚拟机2中新建用户student。
(2)添加虚拟机2中/etc/ssh/sshd_config文件中的DenyUsers选项。
(3)重启虚拟机2的sshd服务。
(4)在虚拟机1中使用虚拟机2的student身份连接虚拟机2,发现被拒绝。
4.修改AllowUsers选项
(1)再在虚拟机2中新建一个用户lyueyue。
(2)添加虚拟机2中/etc/ssh/sshd_config文件中的AllowUsers选项,并把上述实验3中添加的DenyUsers删除。
(3)重启虚拟机2中的sshd服务。
(4)在虚拟机1中分别使用虚拟机2的student身份和lyueyue身份连接虚拟机2,发现使用student身份可以登录。
而lyueyue身份无法登录。