首页 > 系统相关 >实战攻防演练-Linux写入ssh密钥,利用密钥登录

实战攻防演练-Linux写入ssh密钥,利用密钥登录

时间:2023-10-30 09:12:42浏览次数:37  
标签:公钥 私钥 rsa 密钥 Linux root ssh

前言

密钥形式登录的原理是利用密钥生成器制作一对密钥,一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

下面来讲解如何在 Linux 服务器上制作密钥对,将公钥添加给账户,设置 SSH,最后通过客户端登录。
在linux后渗透中拿下shell权限后,使用ssh-keygen命令建立密钥对

服务创建密钥

如上图所示

└─# ssh-keygen          																	# 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  # 按 Enter回车即可
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 							# 输入密钥锁码,或直接按 Enter 留空
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:6Nr2bOK9deJLoJZ+tU9jNSGGTlvFunuxYYYBZkI+XpY root@kali
The key's randomart image is:
+---[RSA 3072]----+
|       ..    ..  |
|       .. +o ..  |
|        o+E.+..  |
|       o * +o. . |
|      . S o  +o  |
|     . o .. o.=. |
|      =  .+.=+ + |
|     =ooo+.=..o  |
|    .o+==.oo..   |
+----[SHA256]-----+

这里介绍一些ssh-keygen的参数

-t  #指定密钥类型
-b #指定密钥长度

也可以执行

ssh-keygen -t rsa -b 4096   //指定类型长度
ssh-keygen -t rsa 					//指定类型

密钥锁码在使用私钥时可以输入字符,或留空。
现在当前root目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。
其中,id_rsa 为私钥,id_rsa.pub 为公钥。

在服务器上安装公钥

在安装前先切换目录至.ssh目录,接下来需要安装authorized_keys,授权密钥,安装后需要保证authorized_keys文件权限为600,目录权限为700。

[root@kali ]$ cd .ssh 
[root@kali .ssh]$ cat id_rsa.pub >> authorized_keys   

#公钥的安装注意:单尖括号>表示将文件内容全部替换掉;双尖括号是追加,这样就完成了公钥的安装。
#为了确保连接成功,保证文件权限正确

[root@kali .ssh]$ chmod 600 authorized_keys 
[root@kali .ssh]$ chmod 700 ~/.ssh

设置 SSH,打开密钥登录功能

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

    RSAAuthentication yes
    PubkeyAuthentication yes

		PermitRootLogin yes 				#root 用户允许通过 SSH 登录(可选)

最后,再重启 SSH 服务:(这个重启ssh服务不会导致断连)

[root@host .ssh]$ service sshd restart

将私钥下载客户端连接

在服务器下载下来我们的私钥id_rsa文件,在本地机器使用ssh连接软件连接,如下图所示。

实战连接图片

参考https://www.runoob.com/w3cnote/set-ssh-login-key.html

标签:公钥,私钥,rsa,密钥,Linux,root,ssh
From: https://www.cnblogs.com/Yichensec/p/GF_linuxkey.html

相关文章

  • linux基本文件命令复习笔记
    1,放大缩小终端窗口字体  放大 ctrlshift+=   缩小  ctrl-2,6个常见终端命令 (1)ls  查看当前文件夹下的内容 (2)pwd 查看当前所在文件夹  (3)cd目录名 切换文件夹 (4)touch文件名 如果文件不存在,新建文件。和mkdir不同的是,mkdir创......
  • python进阶14大模块200页知识体系md笔记,第3篇:linux命令进阶
    本完整笔记从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。完整版笔记直接地址:请移步这里......
  • 第九周 Linux课后技术总结
    5.1初始进程什么是进程?进程是已启动的可执行程序的运行实例。进程有以下组成部分。已分配内存的地址空间。安全属性,包括所有权凭据和特权。程序代码的一个或多个的执行线程。进程状态。每个进程都有唯一的进程标识PID,一个PID只能标识一个进程。(使用pidof命令查看sshd......
  • Linux用户管理
    1用户/组概览Linux系统是多用户、多任务的分时操作系统,系统上每一个进程都有一个特定的文件,每个文件都被一个特定的用户所拥有。如果需要使用系统资源,首先必须向系统超级用户申请成为普通用户,然后以普通用户的身份进入系统。超级用户可以对普通用户进行跟踪,并设置他们的访问权限,......
  • 创建一个自己的 Linux系统
    简单来说就是一个文件传递的机制,首先创建/安装一个硬盘,然后把前硬盘中的一部分文件先转移到Linux系统上,再通过Linux系统转移到创建的新硬盘,之后用虚拟机,把新硬盘装在其中,就可以在新硬盘上做到一些功能了前知识准备:Linux启动流程:1、首先Linux要通过自检,检查硬件设备有......
  • 第一章 初识Linux
    1.Linux简介1.1Linux是多用户多任务的操作系统,免费开源,主要用于搭建服务器,性能稳定。但是Linux系统是专业系统,原始环境较为简单,大部分功能的实现都需要自我搭建。1.2  Linux系统都是由文件构成。对于操作系统内核而言,命令、硬件、软件设备都被视为一个拥有特定功能的......
  • linux学习-2
    进程管理一、静态查看进程状态ps查看静态进程psaux查看当前目录的进程USERPID  %CPU %MEMVSZRSSTTYSTATSTARTTIMECOMMAN用户名进程编号cpu占用率内存占用率占用虚拟内存占用实际内存进程运行终端进程状......
  • linux第四周
    这周学了基本权限UGO,其中U代表该用户本身,G代表该其属组,O代表其他用户;r表示可读,w代表可写,X代表可执行,ll命令查看UGO权限,第2到10个字符中前三位代表的是用户自己的权限,中间三位代表的是属组的权限,后面三位代表的是其他用户的权限,使用chown命令修改文件拥有者和属组,可......
  • Unix/Linux系统编程自学笔记-第四章:并发编程
    1、并行计算并行计算并行计算是一种计算方法,通过使用多个执行并行算法的处理器相较串行计算更快地解决问题。现代多核处理器的结构能很好的实现并行计算。计算机的发展未来也是并行计算。顺序算法与并行计算顺序算法一般代码块格式如下,顺序算法的每个代码块可能包含多......
  • Linux shell编程学习笔记16:bash中的关联数组
    上一节我们探讨了普通的数组,即使用数字下标来索引数组中不同的元素的数组,也可以称之为索引数组。相比纯粹的数字,字符串不仅能表明含义,也更便于记忆使用,于是就有了关联数组。一、关联数组概述bash从4.0开始支持关联数组,关联数组可以使用可以使用任意的字符串、或者整数作为下标来......