非私钥公钥认证方式,仅通过写一段 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 应该怎么写,谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.