如何在python结构中提供公钥密码短语
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在python结构中提供公钥密码短语,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2257字,纯文字阅读大概需要4分钟。
内容图文
![如何在python结构中提供公钥密码短语](/upload/InfoBanner/zyjiaocheng/759/c49feaffa27f45a4aba1bc02c4e82de6.jpg)
我写的简单代码是:
env.host_string = '15.21.18.24'
with settings(user=user, key_filename='/home/amby/.ssh/id_rsa.pub'):
put(local_path, remote_path)
现在我有公钥的pass_phrase.如何编写密码?我希望它能实现自动化.
现在它要求密码短语.
amby@amby-laptop:~/Desktop$python fabric_test.py
[15.21.18.24] Passphrase for private key:
解决方法:
关于术语的快速说明.密码用于私钥,如提示所示.使用ssh密钥对,密钥分为两部分 – 私钥需要保持安全,秘密并且永远不会离开ssh启动会话.公钥可以安全地共享,并且可以自由传输.
当您尝试自动执行ssh事务,并且您必须提供密码短语,并且您正在考虑将密码短语存储在脚本或配置中的某个位置时,密码短语不再是秘密,您可能也没有密码短语.
你可以试试几件事
1)不要打扰密码!它们是可选的.生成没有密码的密钥,供脚本使用.显然,这比具有密钥对的密钥对安全性差,你应该采取额外的措施来锁定它.
您可以通过在远程主机上的authorized_keys文件中提供其他参数来限制授权此ssh密钥运行的命令.通过这种方式,您可以使用安全性较低的密钥,但可以限制任何设法访问私钥的人所造成的损害
您可以使用ssh-keygen生成新的密钥对.给它一个新的文件名,只要在提示输入密码时按Enter键,这将为您提供一个新的私有/公共密钥对,用于您的脚本,不需要密码输入.
authorized_keys文件需要存在于远程主机上远程用户帐户的?./ ssh目录中.典型的密钥条目将如下所示(为清晰起见,我已截断密钥指纹).如果你还没有,那么你可以换一个新的.对于此文件,您需要从新密钥对添加公钥文件的文本.这是扩展名为.pub的那个.公钥文本具有此格式.
ssh-rsa AAAAB3NzaC1yc… user@mycomputer.local
它由一行中的几个字段组成,用空格分隔.第一个字段是密钥类型.长串的字母和数字编码密钥对的公钥.最后一个字段是一个注释,用于帮助识别人类的密钥,通常它具有生成密钥的用户名和主机名.您可以选择将选项字段添加到键条目的前面.它包含一组逗号分隔的选项值,适用于通过此密钥对启动的会话.
您可以将命令参数添加到授权键的选项字段,以标识允许密钥运行的特定命令.这可以用来限制允许无密码短语对的事情.
command=”/usr/bin/ls” ssh-rsa AAAAB3NzaC1yc… user@mycomputer.local
这个密钥对只能远程运行’ls’.
2)使用ssh-agent.如果在执行脚本时shell环境中有经过身份验证的代理,它将提供ssh密钥凭据,而无需每次都提供密码.
典型用法:
你跑
eval `ssh-agent`
在shell中启动agent-daemon. eval表达式导致在shell环境中设置代理会话环境变量.
现在你可以跑了
ssh-add ~/.ssh/my-passphraseless-private-key.rsa
将私钥加载到代理中.代理将询问您密码以解锁密钥.然后它将缓存shell的生命周期的凭据.因此,您可以运行使用此密钥的脚本,并且无需提示输入密码.
内容总结
以上是互联网集市为您收集整理的如何在python结构中提供公钥密码短语全部内容,希望文章能够帮你解决如何在python结构中提供公钥密码短语所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。