我可以手动ssh,但不能从脚本 - 权限被拒绝(publickey)
问题描述:
所以我目前正在负责平衡python脚本。在这个脚本中,我需要更新服务器上的文件。我的计划是让我的python脚本调用一个bash脚本。我可以手动ssh,但不能从脚本 - 权限被拒绝(publickey)
在这个bash脚本中,我想SSH入服务器,在文件上执行一个awk命令,然后注销。
我目前可以手动ssh到这个服务器,因为我设置了一个ssh密钥(使用Google云端平台)。但是,当我尝试运行bash脚本,只执行
'ssh [email protected]'
我得到的错误:权限被拒绝(公钥)
缺少什么我在这里?
答
可能你的私钥位于你的主目录,python以限制用户的身份产生bash进程,尝试改变脚本以明确包含私钥,如果仍然无效,你将不得不复制密钥并且其权限变更
明确添加私钥:
ssh -i /path/to/private/key [email protected]
跑下来就需要整个洛塔细节没有给出(而不是真正的话题在网站专注于编程,而不是用ssh作为互动一个用户或系统管理员)。在问题重现和梳理日志的情况下运行'ssh -vv username @ ip'会是一个开始的地方。 (如果在客户端上查看这些日志时看起来一切都很好,那么在服务器端调试调试级别将是一个可以继续的地方)。 –
请[编辑]您的问题,以包括脚本的相关部分。另外,你应该解释一下这个ssh实例应该如何进行身份验证 - 也就是说,它应该使用哪个密钥文件,以及如何配置它以便为此使用该密钥。为你的.ssh目录和密钥文件设置'ls -la'输出会很有帮助。 – Kenster