SSH认证方式

SSH主要包括密码、公钥、GSSAPI等认证方式。

0x01. PasswordAuthentication 密码认证

传统的密码口令认证。配置如下:

PasswordAuthentication yes

0x02. PubkeyAuthentication 公钥认证

非对称密钥进行身份认证。公钥认证经常被用来进行Linux主机管理,可以不用输入密码进行登录。而在拿到主机权限却无法破解用户密码的情况下,也可以用此方法登录目标服务器。内网渗透中信息搜集时,也可以进行敏感私钥的搜集。
使用时需要配置被控制机的相应用户主目录下的.ssh目录下的文件。

    1. 生成非对称密钥对
    2. 可以使用RSA或者DSA算法。

      ssh-keygen -t [rsa|dsa]

      将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub(.pub为公钥)

    3. 把公钥复制到想要登陆的目标主机上
    4. 把公钥内容添加到欲授权的用户主目录的.ssh文件夹下的的authorized_key文件内。
      将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_rsa.pub >> ~/.ssh/authorized_keys

    5. 修改sshd_config配置文件
    6. PubkeyAuthentication yes
      AuthorizedKeysFile .ssh/authorized_keys
      或者AuthorizedKeysFile ~/.ssh/authorized_keys

    7. 重启SSH服务
    8. service sshd restart 或者 /etc/rc.d/init.d/sshd restart

      这样的话,本地指定匹配的私钥后,就可直接以相应用户的身份登陆目标主机。

    9. 本地根据Host指定不同私钥文件
    10. sudo vi /etc/ssh_config
      或者
      vi ~/.ssh/config

      添加:
      Host 目标HOST
      IdentityFile /home/kingx/.ssh/keyname

      使用ssh连接即可。

0x03. GSSAPIAuthentication

公共安全事务应用程序接口。
/etc/ssh/ssh_config
配置如下:

UseDNS yes
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始 IP地址一致,通过此种措施来防止客户端欺骗。

0x04. SSH其他相关文件

known_hosts:
该文件记录该主机访问过的ssh主机的公钥,已验证远程主机,每次访问时进行核对远程主机的公钥是否更改,防止劫持。
可以进行以下配置来忽略该验证
1. 手动删除修改known_hsots里面的内容;
2. 修改配置文件“~/.ssh/config”,加上这两行,重启服务器。

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Leave a comment

Your email address will not be published. Required fields are marked *