实战攻防演练-Linux写入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连接软件连接,如下图所示。
实战连接图片
本文作者:Super403
本文链接:https://www.cnblogs.com/Yichensec/p/GF_linuxkey.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。