我需要从100个远程服务器收集用户信息.我们有用于身份验证的公钥/私钥基础结构,我已经配置了ssh-agent命令来转发密钥,这意味着我可以在没有密码提示的任何服务器上登录(自动登录).
现在我想在所有服务器上运行一个脚本来收集用户信息(我们在所有服务器上拥有多少个用户帐户).
这是我收集用户信息的脚本.
#!/bin/bash
_l="/etc/login.defs"
_p="/etc/passwd"
## get mini UID limit ##
l=$(grep "^UID_MIN" $_l)
## get max UID limit ##
l1=$(grep "^UID_MAX" $_l)
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( $3 >= min && $3 <= max && $7 != "/sbin/nologin" ) print $0 }' "$_p"
我不知道如何在没有交互的情况下使用ssh运行这个脚本?
解决方法:
由于您需要登录远程计算机,因此AFAICT无法“无ssh”执行此操作.但是,ssh接受登录后在远程计算机上执行的命令(而不是它将启动的shell).因此,如果您可以将脚本保存在远程计算机上,例如作为〜/ script.sh,您可以在不启动交互式shell的情况下执行它
$ssh remote_machine ~/script.sh
一旦脚本终止,连接将自动关闭(如果您没有故意配置它).
标签:bash,linux,ssh,autologin 来源: https://codeday.me/bug/20190718/1494557.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。