前言

密钥形式登录的原理是利用密钥生成器制作一对密钥,一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 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

实战攻防演练-Linux写入ssh密钥,利用密钥登录的更多相关文章

  1. linux下ssh免秘钥登录

    1.检查防火墙是否关闭 (1)切换到root用户 (2)查看防火墙状态 service iptables status 这是没有关闭 (3)设置关闭 service iptables stop 2.检 ...

  2. 【Linux】ssh设置了密钥,但ssh登陆的时候还需要输入密码

    ------------------------------------------------------------------------------------------------- | ...

  3. linux下ssh/scp无密钥登陆方法

    一.双方机器都是root用户登陆方法 A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A ...

  4. Linux配置SSH端口以及密钥登录

    改端口后重启: vim /etc/ssh/sshd_config systemctl restart sshd

  5. SSH: Linux开启ssh并启动root登录设置默认密码

    apt update && apt install -y openssh-server echo "PermitRootLogin yes" >> /e ...

  6. Linux系统设置 SSH 通过密钥登录

    我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器.但是,一般的密码方式登录,容易有密码被暴力破解的问题.所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者 ...

  7. Linux中ssh介绍与ssh+key密钥登陆部署

    环境内核信息: [root@zabbix- ~]# uname -a Linux zabbix- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 x86 ...

  8. Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

  9. Linux下 SSH远程管理服务

    第1章 SSH基本概述 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定 在进 ...

  10. linux查看ssh用户登录日志与操作日志

    linux查看ssh用户登录日志与操作日志 2013-11-01转载   ssh用户登录日志 linux下登录日志在下面的目录里:  代码如下 复制代码 cd /var/log 查看ssh用户的登录日 ...

随机推荐

  1. Python 运行 shell 命令的一些方法

    哈喽大家好,我是咸鱼 我们知道,python 在自动化领域中被广泛应用,可以很好地自动化处理一些任务 就比如编写 Python 脚本自动化执行重复性的任务,如文件处理.数据处理.系统管理等需要运行其他 ...

  2. C#获取文件MD5

    什么是MD5? ​ MD5 Message-Digest Algorithm,MD5信息摘要算法.一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于 ...

  3. 从 iOS App 启动速度看如何为基础性能保驾护航

    1 前言 启动是App给用户的第一印象,一款App的启动速度,不单单是用户体验的事情,往往还决定了它能否获取更多的用户.所以到了一定阶段App的启动优化是必须要做的事情.App启动基本分为以下两种 1 ...

  4. 这可能是前端处理excel最好的工具了

    大家好,我是程序视点的小二哥! 今天小二哥要分享的是一个纯前端实现读取和导出excel文件的工具库:ExcelJS ExcelJs 简介 功能十分简单: 读取,操作并写入电子表格数据和样式到 XLSX ...

  5. 查看Nginx是否启动

    查看Nginx进程 ps -ef | grep nginx 输出如下: root 1036 1 0 Jul15 ? 00:00:00 nginx: master process /www/server ...

  6. Numpy,一篇足以

    numpy 用于数值计算 ndarray, 一个有效的多维数组,能提供以数组为导向的快速数值计算和灵活的广播功能(broadcasting) 便利的数学函数 用于读取/写入(reading/writi ...

  7. gpg 解密-禁用交互式密码输入

    背景描述 gpg 解密默认弹出如下窗口,请用户输入密码,但在脚本自动化时遇到了问题 lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x ...

  8. 【io_uring】内核源码分析(更新中)

    文章目录 `io_uring` 系统调用 `io_uring_setup` `io_uring_setup` `io_uring_create` `io_sq_offload_start` 系统调用 ...

  9. Airtest遇到模拟器无法输入中文的情况该如何处理?

    此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 1. 前言 最近有收到同学们的一些提问,使用Air ...

  10. Strategy Pattern and Polymorphism —— Behavioral Class

    策略模式着重于封装和替换 不同的算法或行为,以便在运行时进行选择. Simple example - Computer and USB interface 现代人对计算机.USB接口还有各种设备之间的 ...