非私钥公钥认证方式,仅通过写一段 shell 脚本,自动获取并调用 sshpass 输入密码,实现免输密码登录
网上找到的解决方案:
https://askubuntu.com/a/829837 https://github.com/Shmadul/easyssh
ssh config 文件类似于,通过注释的方式填入密码
Host host
User root
#Password passwd
HostName localhost
Port 2222
原脚本:
#!/bin/bash
host=$1
password=`awk "/#Password/ && inhost { print \\\$2 } /Host/ { inhost=0 } /Host $host/ { inhost=1 }" ~/.ssh/config`
if [[ -z "$password" ]]; then
/usr/bin/ssh $*
else
sshpass -p $password /usr/bin/ssh $*
fi
但是测试之后无法正常获取到 host 对应的 Password,应该是 awk 语句有问题
希望各位能帮忙看看这 awk 应该怎么写,谢谢