我的情况不是很普通,或者对某人来说很普通.我需要在数据库中存储一些密码.
让我解释一下我真正需要的东西.
我有一些服务器,我需要每天访问3次,每天,全年,是一种不间断的服务,SSH服务在其中每一个运行,我也有我的软件请求每天访问每个服务器3次.
好吧,一切都按照我的意愿运作,问题是,密码!如何管理所有密码!
今天我在脚本中有所有服务器密码(实际运行SSH服务的脚本相同),因为我使用SSH2 PHP函数ssh2_auth_password()对服务器进行身份验证,但它是纯文本.
那个函数ssh2_ auth_ pubkey_ file()怎么样?我该怎么用?
是否安全,将密码存储在我自己的脚本中?我不这么认为..
那么在这种情况下该怎么办?如果我将密码存储在数据库中,我将需要在每个服务器请求(它由cron运行)上检索密码,然后如果它是一个哈希,我可以与我的脚本中的另一个哈希进行比较并返回一个纯文本功能验证,仍然是纯文本..(但我认为它还不是一个好的解决方案!).
EnCrypt密码然后DeCrypt每个服务器请求的密码?也许可能..
有人知道在这种情况下最好做什么吗?
我在游泳池!
提前感谢任何光!
[EDITED]
我的Arch是Kernel Linux 2.6中的大多数,
SaaS应用程序在外部(中立服务器)上运行
CronJobs是3次/次运行的regurlary,一切都是自动命令行,没有人为干预.
[已编辑]
我应该在哪里生成密钥对?对于我的所有服务器,只有一个密钥对包括SaaS APP服务器吗?或者我需要逐个生成?
有点困惑..
CRON JOBS (fire servers) 3x/day
------------
| SaaS APP |________________________
________------------_______ |
| | | |
| | | |
----------- ----------- ----------- |
| SERVER1 | | SERVER2 | | SERVER3 | .... SERVER4 ....
----------- ----------- -----------
再次感谢!
解决方法:
你在ssh2_auth_pubkey_file()
的正确轨道上.
>通过ssh-keygen生成公钥/私钥对.
>将公钥添加到每台服务器上的〜/ .ssh / authorized_keys.
>将公钥和私钥复制到客户端计算机,并使其只能由需要使用它们的帐户读取.
>将客户端中的身份验证代码更改为以下内容:
$ssh_conn = ssh2_connect('my.server.addr', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file(
$ssh_conn,
'sshuser',
'/path/to/id_rsa.pub',
'/path/to/id_rsa',
'key_passphrase'
)) {
echo "Success";
} else {
echo "Failure";
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。