Bac*_*con 12 ssh bash public-key-encryption
有没有办法以编程方式测试ssh是否可以使用公钥进行身份验证?我想做这样的事情(最好是在bash,但我对python解决方案开放):
ssh-test-thingy user@host || echo "could not authenticate using publickey"
Run Code Online (Sandbox Code Playgroud)
其中ssh-test-thingy返回非零退出状态,如果在远程主机上不公钥匹配.
Joh*_*nck 18
我将选项传递-o BatchMode=yes给ssh,看看是否有效.它将禁用提示输入密码,我认为这在实践中与您希望了解是否可以通过密钥进行身份验证相同. ssh-test-thingy可以写成像这样的bash脚本:
exec ssh -o BatchMode=yes "$@" true
Run Code Online (Sandbox Code Playgroud)
这将简单地传递user @ host(和任何其他参数),并尝试true在远程主机上运行,如果它工作,将立即返回成功状态代码(0).