ssh密钥登录命令(ssh密钥密码)

2023-11-19 0 246

目录:

Royal TSX Mac 环境下搭建秘钥登录

最近被人安利了一个Mac下类Xshell的SSH软件,但是在网上找了很久也没有关于如何使用Royal TSX连接跳板机登录服务器的方法,自己尝试了一下,发现以下方法是可以的,记录下来作为参考。

1.命令:ssh-keygen -t rsa,生成公钥秘钥;

2.把刚生成的密钥证书(Identity和Identity.pub,或其他名字)放入Linux发行版自己目录下;

3.设置证书属主权限为600:chmod 600 Identity Identity.pub

4.切换到root账号执行以下指令,确认本地ssh支持dsa加密算法:

man ssh | grep -i PubkeyAcceptedKeyTypes echo “PubkeyAcceptedKeyTypes=+ssh-dss” /etc/ssh/ssh_config echo “PubkeyAcceptedKeyTypes=+ssh-dss” /etc/ssh/sshd_config

5.切换到root账号执行以下指令,确认本地ssh ForwardAgent转发功能打开

grep -v”^#” /etc/ssh/ssh_config | grep “ForwardAgent” || echo”ForwardAgent yes” /etc/ssh/ssh_config

6.退出root账号,切换回本地个人账号

7.启用本地ssh agent代理转发,命令#:eval `ssh-agent`

8.把刚申请的密钥证书添加进去,命令#:ssh-add Identity

9.使用自己的账号登陆跳板机,命令#: ssh -p 22 Monstaror@localhost

渗透测试-SSH秘钥登录

最近渗透遇到许多linux服务器,在多方信息收集无果后,想到了ssh的秘钥登录。但诸多知识点有点混乱,趁此时间再次复现一遍。

ssh中文名称叫安全外壳协议,是一种加密的网络传输协议。我们现在经常说的ssh指的是openssh,是对ssh协议的实现。

我们都知道ssh提供了两种安全级别的认证,一种口令认证,一种秘钥认证。

基于口令的认证时需要输入正确的用户名和密码,且连接加密。

ssh的连接过程为:

这里指的就是无法确定host的真实性,只知道它的公钥指纹。问你是否连接,

yes后就需要远程服务端的用户密码。密码输入正确后才可以登录。

当远程服务端的公钥被接受以后,就会保存在当前用户的/.ssh/known_hosts之中。下次再连接这台主机时,系统就会知道公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。

现在企业更流行使用秘钥登录。修改远程服务端的 /etc/ssh/sshd_config 配置文件,

重启sshd服务,就可以禁用密码验证。

ssh秘钥登录,其实就是”公钥登录”,首先需要用户自己生成一对公钥和私钥。然后用户将自己的公钥放在远程服务端上。此时远程服务器持有公钥,用户持有私钥。满足”公钥加密,私钥解密”。

过程如下:

该命令用于生成秘钥对。

需要注意的是:

生成后可以在当前用户的.ssh文件夹下看到。

ssh-copy-id 命令将公钥写到远程服务端kali的test用户下的/.ssh/authorized_key文件中。

如果是第一次登录,用户也会在/.ssh/文件夹下创建known_hosts,记录了远程服务端的ip和对应的公钥指纹。

连接时默认去查找当前用户/.ssh/文件下是否存在私钥,如果没有需要指定私钥进行连接。

如果设置了证书的密码,则在远程服务器时需要输入密码。

在 /etc/hosts 可以配置主机名和IP地址

此时就可以直接ssh主机名。

当渗透测试拿到一台linux服务器,查找/.ssh/文件夹下是否存在私钥文件,或*.pub文件,因为私钥和公钥一块生成。结合known_hosts文件,可以去连接未知的机器。

反之,如果拿到的机器只存在known_hosts文件,则无法利用。该文件只能说明曾经接收过公钥。

如果拿到的机器只有authorized_key文件,则证明存在用户连接过该机器。

SSH详解-3.密钥登陆

SSH详解-1.ssh基础知识

SSH详解-2.ssh基本用法

SSH详解-3.密钥登陆

SSH详解-4.多个ssh公钥

在上一篇中我们了解到了ssh基本用法,ssh通过密码进行登录。密码登录存在很多问题。密码太简单,又不安全。密码太复杂,不容易记,而且每次登录都要输入很麻烦。于是就有了密钥登陆。

什么是密钥(key)?

ssh密钥登录采用的是 非对称加密 。

非对称密钥加密系统,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥(public key)和,另一个由用户自己秘密保存,即私用密钥(private key)。

如果数据使用公钥加密,那么只有使用对应的私钥才能解密,其他密钥都不行;反过来,如果使用私钥加密(这个过程一般称为“签名”),也只有使用对应的公钥解密。

了解完密钥后,接下来看看密钥登录的过程,SSH 密钥登录分为以下的步骤。

第零步,准备步骤客户端通过 ssh-keygen 生成自己的公钥和私钥,并将公钥放入远程服务器的指定位置。

第一步,用户客户端向服务器发起SSH登录的请求。

第二步,服务器收到用户SSH登录的请求,服务器生成一些随机数据发送给客户端。

第三步,客户端接收到服务器发过来的数据,客户端使用私钥对数据进行签名后再返回给服务器。

第四步,服务器收到客户端加密后的数据,使用对应公钥进行解密。然后判断解密后的数据是否与原始数据一致,如果一致就允许用户登录。

ssh-keygen 是OpenSSH提供的一个命令行工具,用于生成密钥登录所需的公钥和私钥。

在上面的例子中,我使用了-t参数来指定加密算法,一遍会选择rsa或者dsa。

第一个问题,问我要保存在哪?(直接Enter默认会保存在~/.ssh/id_rsa中)因为我之前已经生成过密钥了,我就保存在tenxun里面。

第二个问题,询问是否要为私钥文件设定密码保护(passphrase)。这样的话,即使入侵者拿到私钥,还是需要破解密码。如果为了方便,不想设定密码保护,可以直接按回车键,密码就会为空。

最后,就会生成私钥和公钥,屏幕上还会给出公钥的指纹,以及当前的用户名和主机名作为注释,用来识别密钥的来源。

从上面的公钥中我们可以看到末尾的公钥注释 23696@DESKTOP-GKRBCVI

公钥注释可以用来识别不同的公钥,表示这是哪台主机(DESKTOP-GKRBCVI)的哪个用户(username)的公钥。

注意 ,公钥只有一行。因为它太长了,显示的时候可能自动换行了。

OpenSSH 规定,用户公钥保存在服务器的 ~/.ssh/authorized_keys 文件。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的~/.ssh/authorized_keys文件。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了。每个公钥占据一行。如果该文件不存在,可以手动创建。

-i 指定要上传公钥(公钥文件可以不指定路径和 .pub 后缀名),user是所要登录的用户名,hostname是主机名,这两个参数与ssh 登录命令是一致。

特别注意 ,不是把公钥上传上去就行了,还需要把 authorized_keys 文件的权限要设为644,即只有文件所有者才能写。如果权限设置不对,SSH服务器可能会拒绝读取该文件,导致密钥登录失效,登录的时候还需要输入密码。

提到输入密码,如果再生成公钥和私钥的时候设置了密码,使用密钥登录的时候也需要输入私钥的密码,这样可以防止他人非法窃取了私钥。

私钥设置了密码以后,每次使用都必须输入私钥密码,这个问题可以使用 ssh-agent 命令解决。

百度百科-密钥

Git – 生成 SSH 公钥 (git-scm.com)

ssh(1) – OpenBSD manual pages

【ssh密钥登录命令】的内容来源于互联网,若引用不当,请发邮件456(@)456.cn联系删除

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

你的前景,远超我们想象