gpt4 book ai didi

linux - 如何在不实际执行 ssh 的情况下查找是否可以通过 SSH 访问远程主机

转载 作者:太空狗 更新时间:2023-10-29 11:24:38 28 4
gpt4 key购买 nike

我有多个远程主机连接到我的本地主机 (server-A)。为了确保/过滤真正可以访问 localhost 的主机列表,我进行了 ping 测试。

ping -c1 <remotehost-IP> 

if [ "$?" != "0" ];then
echo "Not reachable.Exiting..."
exit 1;
fi

但是 ping 测试无法为我提供任何检查以确保可以通过 SSH 连接/端口 22 访问过滤后的远程主机 IP。

    non-root-user@localhost>ssh 172.26.192.15
ssh: connect to host 172.26.192.15 port 22: Connection refused
non-root-user@localhost>echo $?
1

non-root-user@localhost>ssh -v 172.26.192.15
OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 172.26.192.15 [172.26.192.15] port 22.
debug1: connect to address 172.26.192.15 port 22: Connection refused
ssh: connect to host 172.26.192.15 port 22: Connection refused

查询:

如果连接被拒绝,上面的检查对我有用。但是,如果可以进行 SSH 连接,那么我将进入远程主机或继续进行密码提示。这导致检查返回码的障碍。

所以我想知道是否有任何方法可以事先检查远程 IP 是否可以通过 SSH 访问。 ?

最佳答案

这是满足问题的最简单的命令(不需要 nmap 或 nc):

ssh -o PubkeyAuthentication=no -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no host.foo.com 2>&1 | grep "Permission denied"

解释:尝试使用禁用的常用身份验证方法进行连接,并为“权限被拒绝”使用 grep STDERR。如果主机正在为 SSH 提供服务,则返回退出状态 0,无论凭据如何,并且不会挂起等待密码输入。

关于linux - 如何在不实际执行 ssh 的情况下查找是否可以通过 SSH 访问远程主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35741323/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com