我正在创建一个bash脚本,该脚本将登录到远程计算机并创建私钥和公钥。
我的问题是远程机器不是很可靠,他们不总是up。我需要一个bash脚本,以检查SSH连接是否已启动。在实际创建密钥以供将来使用之前。
你可以检查这个与返回值ssh给你:
原文链接:https://www.f2er.com/bash/390295.html$ ssh -q user@downhost exit $ echo $? 255 $ ssh -q user@uphost exit $ echo $? 0
$ a=`nmap uphost -PN -p ssh | grep open` $ b=`nmap downhost -PN -p ssh | grep open` $ echo $a 22/tcp open ssh $ echo $b (empty string)
但是你必须grep消息(nmap不使用返回值来显示端口是否被过滤,关闭或打开)。
EDIT2:
如果你对ssh-port的实际状态感兴趣,你可以用egrep’open | closed | filtered’替换grep open:
$ nmap host -PN -p ssh | egrep 'open|closed|filtered'
只是要完成。