超详细ssh命令的使用(包括ssh免密认证与安全优化)

Openssh功能概述

  • OpenSSH 是 SSH (Secure SHell) 协议的免费开源软件
  • 软件安装名称:Openssh-server
  • 配置文件:/etc/ssh/sshd_conf
  • 默认端口:22
  • 客户端命令:ssh
  • 实验环境:
ip 对应主机
172.25.254.22 workstation (客户端)
172.25.254.11 rhel8(服务端)
172.25.254.17 真机(跳板)

此时两两之间相互都能ping通
在这里插入图片描述
为了实验环境的纯净,提前删除/root/.ssh文件
在这里插入图片描述

ssh命令的用法

sshd= secure shell可以通过网络在主机中开启shell的服务

1.连接方式:

命令 作用
ssh username@ip 文本模式的链接
ssh -X username@ip 可以在链接成功后开机图形
注意:
	第一次链接陌生主机时要建立认证文件
	所以会询问是否建立,需要输入yes
	再次链接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes

2.ssh命令

参数 作用
-l 指定登陆用户
-i 指定密钥
-x 开启图形
-p 指定端口
-f 后台运行
-o 指定连接参数
-t 指定连接跳板

练习:

  • 指定登陆用户
    在这里插入图片描述
    在rhel8(172.25.254.11)上可以查看连接信息
    在这里插入图片描述
  • 开启图形
    在这里插入图片描述
  • 后台运行(可使用进程查看)
    在这里插入图片描述
  • 指定连接参数,可使用man ssh查询
    在这里插入图片描述
  • 指定连接跳板
    workstation:172.25.254.22
    rhel8:172.25.254.11
    真机:172.25.254.17 (跳板)
    在这里插入图片描述

Openssh服务的key认证

1.Openssh认证方式

密码认证 密钥认证
至少6个字符 新型认证方式,分为公钥及私钥
包含数字,字母,下划线特殊符号等 公钥上传服务器
易泄漏 私钥配对认证,不会被盗用
可被暴力破解 攻击者一般无法通过密钥登录服务器
密码容易丢失 /

公钥及私钥理解:公钥可以理解为锁头;私钥可以理解为钥匙

2.Openssh KEY(支持rsa及dsa加密)

  • 生成密钥 ssh-keygen
  • 上传密钥 ssh-copy-id –i keyfile remoteUSER@remoteIP

3.关于Openssh的文件

文件 功能
~/.ssh/authorized_keys 用于保存用户的公钥文件
~/.ssh/known_hosts 辨别服务器的唯一散列码
~/.ssh/id_dsa 用户的私钥文件
~/.ssh/id_rsa.pub 用户的公钥文件

注意:authorized_keys不可自己改变,随意改变内容或名称后,免密认证就会失效

4.练习

  • 生成认证KEY
[root@workstation ~]# ssh-keygen 		##生成密钥的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):	##指定保存加密字符的文件(使用默认) 
Enter passphrase (empty for no passphrase): 			##设定密码(使用空密码)
Enter same passphrase again: 					##确认密码
Your identification has been saved in "/root/.ssh/id_rsa".	##私钥(钥匙)	
Your public key has been saved in "/root/.ssh/id_rsa.pub".	##公钥(锁)
The key fingerprint is:
SHA256:MjWWf2+fTOC9xJ4TWaw46xwUSqJjZsxEJ6pgFrHwO48 root@workstation.westos.com
The key's randomart image is:
+---[RSA 2048]----+
|.o.   o .        |
|..o  o o .       |
|.+. . . * . .  . |
|o. o + + = . .  o|
|  +   @ S o oo .o|
|   + + +   o+.=o |
|  E .       .+o=.|
|           ..o=o+|
|           .o  *o|
+----[SHA256]-----+

  • 加密服务
[root@workstation .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@workstation .ssh]# ssh-copy-id -i id_rsa.pub [email protected]  ##加密sshd服务
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.25.254.11's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@172.25.254.11'"
and check to make sure that only the key(s) you wanted were added.

[root@workstation .ssh]# 

  • authorized_keys的出现表示加密完成
[root@rhel8 .ssh]# ls
authorized_keys	 known_hosts

注意:rhel8中authorized_keys的内容,与workstation中公钥id_rsa.pub的内容一致

  • 测试
    在客户主机中(172.25.254.22)ssh [email protected]连接时发现直接登陆不需要root登陆系统的密码认证
    在这里插入图片描述

5.分发钥匙给真机

[root@workstation ~]# scp /root/.ssh/id_rsa  [email protected]:/root/.ssh
root@172.25.254.17's password: 
Permission denied, please try again.
[email protected]'s password: 
id_rsa                                                                        100% 1831     2.3MB/s   00:00    
[root@workstation ~]# 

  • 真机测试
    注意:此时我们可以发现kiosk没有免密,root用户可以免密。这是因为我们将密钥发送给的是[email protected]而不是[email protected]
    在这里插入图片描述

sshd服务常用相关配置参数

1.配置文件

/etc/ssh/sshd_config

2.配置参数

参数 作用
Port 22 监听端口
Protocol 2 指定协议版本
ListenAddress 绑定IP
HostKey 设定HostKey密钥路径
PermitRootLogin 设定超级用户是否能登录
PubkeyAuthentication 公钥认证开关
PasswordAuthentication 密码认证开关
AllowUsers 用户白名单
DenyUsers 用户黑名单

3.sshd的安全设定
修改配置文件vim /etc/ssh/sshd_config

【1】PasswordAuthentication yes|no 表示是否允许用户通过登陆系统的密码做sshd的认证
在这里插入图片描述
当设置为no时,没有密钥的主机就不能通过输入密码来进行登陆
在这里插入图片描述

【2】PermitRootLogin yes|no 是否允许root用户通过sshd服务的认证

  • 当设置为yes,允许root用户通过认证(使用student与root用户进行对比)
    在这里插入图片描述
  • 当设置为no可用student用户登陆,超级用户被限制了
    在这里插入图片描述
    在这里插入图片描述

【3】下述黑白名单实验前提

  • 此时可以看出rhel8中有哪些用户
    在这里插入图片描述
  • 在workstation中,此时都可以
    在这里插入图片描述

【4】Denyusers westos 设定用户黑名单,默认不在黑名单中的用户可以使用sshd

在这里插入图片描述
在这里插入图片描述
【5】Allowusers student westos 设定用户白名单,只有在白名单的用户才可以使用sshd
在这里插入图片描述

发布了64 篇原创文章 · 获赞 4 · 访问量 3419

猜你喜欢

转载自blog.csdn.net/ly_qiu/article/details/105381718