【问题标题】:Break ssh command from within a script and save debug log to a file从脚本中中断 ssh 命令并将调试日志保存到文件
【发布时间】:2022-01-11 01:29:39
【问题描述】:

我正在尝试编写一个 bash 脚本,该脚本通过调试 (ssh -vvv) 针对指定的主机运行 ssh 命令。 我没有尝试登录服务器,而只是想查看服务器提供的所有 kex、mac 和密码。

在使用 -G 选项协商后,我确实创建了一个脚本来查找 kex 算法。

#!/bin/bash
for f in `cat servers.txt`;
do echo "### $f ###";
        echo -e "kexalgorithms"
        result=$(ssh -G $f uname -a | grep kexalgorithms)
        echo $result;
done

但是,我现在意识到这个输出依赖于本地机器上的 ssh 配置,并且不会给我远程服务器提供的确切 kex。

如果我执行ssh -vvv <host>,它将在行中提供此信息

debug2:对等服务器 KEXINIT 提案

debug2:KEX 算法:curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group- exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

debug2:主机密钥算法:rsa-sha2-512,rsa-sha2-256,ssh-ed25519 debug2:密码

但是,如果从脚本运行ssh -vvv,它将卡在用户名/密码提示符处。

有什么方法可以将标准输出保存到密码提示到文件中(可能以主机名作为文件名)并在密码提示下中断脚本运行?

提前致谢

【问题讨论】:

    标签: bash ssh


    【解决方案1】:

    使用nmap 从远程 ssh 服务器获取所有支持的密钥交换算法:

    nmap --script ssh2-enum-algos -p 22 YOUR-SSH-SERVER \
      | awk -v a='kex_algorithms:' '$2==a{getline; while( $0~/^\| {7}/ ){ print $2; getline }}'
    

    输出(例如):

    曲线25519-sha256 curve25519-sha256@libssh.org ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group-exchange-sha256 diffie-hellman-group16-sha512 diffie-hellman-group18-sha512 diffie-hellman-group14-sha256

    【讨论】:

      【解决方案2】:

      禁用PasswordAuthenticationPubkeyAuthentication 并使用GNU grep

      ssh -o PasswordAuthentication=no -o PubkeyAuthentication=no -vv YOUR-SSH-SERVER 2>&1 | grep -m 1 -Po 'KEX algorithms: \K.*'
      

      输出(例如):

      curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16

      【讨论】:

      • 嗨赛勒斯,这确实有效。我正在进一步测试这一点,并将随时通知您。感谢您的帮助:)
      • 不客气。我绝对建议彻底测试它。
      猜你喜欢
      • 2017-01-09
      • 2019-05-07
      • 2018-08-08
      • 2014-12-02
      • 1970-01-01
      • 2013-03-12
      • 2011-07-16
      • 2022-01-22
      • 2020-03-09
      相关资源
      最近更新 更多