linux openssh

目录

    • openssh的介绍
    • ssh命令的用法
    • openssh的key认证
    • openssh的安全优化

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等信息
linux openssh_第1张图片
(2)配置虚拟机1的ip地址
linux openssh_第2张图片
根据前面查看的虚拟机网关等信息,配置打勾的这四项。
注意:
BOOTPROTO=static 静态ip
BOOTPROTO=dhcp 动态ip
linux openssh_第3张图片
注意:也可以直接删除原有配置文件,新建一个网卡配置文件。也可以根据真实主机的信息来设置(ip地址不能和真实主机一样,但网关之类要相同),ipconfig/all显示所有信息。linux openssh_第4张图片
这里使用的是虚拟机虚拟网络编辑器中显示的信息来设定

1.cd /etc/sysconfig/network-scripts
2.rm -fr ifcfg-ens160
3.vim ifcfg-ens160
DEVICE=ens160
IPADDR=192.168.145.3
NETMASK=255.255.255.0
GATEWAY=192.168.145.2
DNS1=xxxx
ONBOOT=yes

配置完成后,别忘记reboot(或重启网络管理器)。
linux openssh_第5张图片
linux openssh_第6张图片
nmcli(网络管理命令行工具NetworkManager command line tool),指令 nmcli connection show 指令查看详细的连接信息,使用 ipconfig 指令,也可以使用 ip addr show 查看虚拟机1的ip地址是否配置成功。
linux openssh_第7张图片

注意: 配置虚拟机的ip地址时,既可以采用上述的命令行配置的方法,也可以使用 nm-connection-editor 指令打开图形化界面进行配置。
linux openssh_第8张图片
linux openssh_第9张图片
(3)以同样的步骤配置虚拟机2
linux openssh_第10张图片
linux openssh_第11张图片
在这里插入图片描述
linux openssh_第12张图片
补充(4)想更好的区分虚拟机的话,可以更改主机名

hostnamectl set-hostname NAME

2.使用虚拟机1连接虚拟机2
使用westos身份连接上之后,在虚拟机2的Desktop中新建三个file文件。
linux openssh_第13张图片
linux openssh_第14张图片
对指令3的演示:
虚拟机1连接虚拟机2
linux openssh_第15张图片
虚拟机2开启gedit
linux openssh_第16张图片
关闭虚拟机2的gedit发现,虚拟机1只是远程开启了虚拟机2的图形程序gedit,而没有连接上虚拟机2。
linux openssh_第17张图片
对指令6的演示:
虚拟机1连接虚拟机2
linux openssh_第18张图片
虚拟机2开启gedit
linux openssh_第19张图片
在虚拟机2中关闭gedit,发现虚拟机1只是开启了虚拟机2中的gedit而已。
linux openssh_第20张图片
另外:去掉公钥确认
linux openssh_第21张图片
对指令7的演示:
使用ip地址为192.168.145.4的主机作为跳板,连接ip地址为192.168.145.5的主机。
linux openssh_第22张图片

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中生成密钥对
linux openssh_第23张图片
linux openssh_第24张图片
2.将虚拟机1的公钥拷贝到虚拟机2

linux openssh_第25张图片
我们可以在虚拟机2中查看一下虚拟机1传过来的公钥文件
linux openssh_第26张图片
现在测试一下虚拟机1是否能免密登录到虚拟机2
linux openssh_第27张图片
成功实现免密登录!
补充: 将公钥从虚拟机1传到虚拟机2的时候,还可以使用 scp 指令。
linux openssh_第28张图片
查看虚拟机2中公钥
linux openssh_第29张图片

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身份,否则会报错。
linux openssh_第30张图片
(2)将PasswordAuthentication由yes改为no。
linux openssh_第31张图片
(3)重启一下虚拟机2的sshd服务。
linux openssh_第32张图片
(4)用虚拟机1连接虚拟机2发现,即使知道密码也不允许登录,虚拟机2直接拒绝。
linux openssh_第33张图片
2.修改PubkeyAuthentication选项
(1)编辑虚拟机2的/etc/ssh/sshd_config文件,同样使用root身份。
在这里插入图片描述
(2)将PubkeyAuthentication由yes改为no。
linux openssh_第34张图片
(3)重启虚拟机2的sshd服务。
linux openssh_第35张图片
(4)在虚拟机1中生成密钥并传送到虚拟机2中。
linux openssh_第36张图片
linux openssh_第37张图片
(5)发现即使虚拟机2有虚拟机1的公钥,虚拟机1连接虚拟机2时仍然需要输入虚拟机2的密码。
linux openssh_第38张图片
3.修改DenyUsers选项
(1)在虚拟机2中新建用户student。
linux openssh_第39张图片
(2)添加虚拟机2中/etc/ssh/sshd_config文件中的DenyUsers选项。
linux openssh_第40张图片
(3)重启虚拟机2的sshd服务。
linux openssh_第41张图片
(4)在虚拟机1中使用虚拟机2的student身份连接虚拟机2,发现被拒绝。
linux openssh_第42张图片
4.修改AllowUsers选项
(1)再在虚拟机2中新建一个用户lyueyue。
linux openssh_第43张图片
(2)添加虚拟机2中/etc/ssh/sshd_config文件中的AllowUsers选项,并把上述实验3中添加的DenyUsers删除。
linux openssh_第44张图片
(3)重启虚拟机2中的sshd服务。
linux openssh_第45张图片
(4)在虚拟机1中分别使用虚拟机2的student身份和lyueyue身份连接虚拟机2,发现使用student身份可以登录。
linux openssh_第46张图片
而lyueyue身份无法登录。
linux openssh_第47张图片

你可能感兴趣的:(linux学习,linux)