我正在寻找一种方法来测试 Windows 主机上是否有可用的 SSH 服务器。我成立这行代码,但是它需要 Unix/Linux 主机:
ssh -q -o "BatchMode=yes" user@host "echo 2>&1" && echo "UP" || echo "DOWN"
Telnet 到端口 22 是可行的,但这不是真正可编写脚本的。我也尝试过普林克,但我还没有找到方法来获得上面单行的功能。
有谁对 Plink 有足够的了解,可以实现这个功能吗?还有其他基于 Windows 的工具可以使用吗?
请注意,所涉及的 SSH 服务器位于公司防火墙后面,无法通过互联网访问。
啊哈。搞明白了:
C:\>plink -batch -v user@host
Looking up host "host"
Connecting to 10.10.10.10 port 22
We claim version: SSH-2.0-PuTTY_Release_0.62
Server version: SSH-2.0-OpenSSH_4.7p1-hpn12v17_q1.217
Using SSH protocol version 2
Server supports delayed compression; will try this later
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 1024 aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "user".
Using SSPI from SECUR32.DLL
Attempting GSSAPI authentication
GSSAPI authentication initialised
GSSAPI authentication initialised
GSSAPI authentication loop finished OK
Attempting keyboard-interactive authentication
Disconnected: Unable to authenticate
C:\>
答案1
Putty 有命令行模式。可能有用,但我不确定。
您还可以使用 Nmap 来检查端口是否接受连接。