我必须从 7 台 Windows 2008 服务器和 4 台 Linux 机器中获取硬盘的可用空间。对于 Windows 机器,我编写了一个小型 .Net 程序。这将从所有 Windows 机器中获取详细信息。在 Linux 机器中,我使用了
df -h
命令。我使用了以下命令
ssh username@linuxmachine df -h
从其他 Linux 机器获取详细信息。但此命令每次都要求输入密码。有没有办法从所有 Linux 机器获取硬盘详细信息?或者有没有办法从 Windows 机器获取 Linux 机器分区的详细信息?
所有 Linux 机器都有相同的用户名和密码。
PS:我对 shell 脚本一无所知。请详细说明您的解决方案:)
答案1
您可以使用公钥/私钥对进行身份验证。首先生成公钥/私钥。在 Linux 上,您可以执行以下操作:
ssh-keygen
您可以在主目录中的 .ssh 中找到密钥:
ceco@persika ~/.ssh $ ls id_rsa*
id_rsa id_rsa.pub
然后在要登录的机器上分发公钥:
ssh-copy-id MACHINE_IP_ADDR
它会要求您输入密码,然后您就可以开始了。公钥保存在 ~/.ssh/authorized_keys 中。完成此过程后,您就可以进行无密码登录了。我不会讨论这方面的安全风险 - 我相信您知道可能出现什么问题 :)