如何配置結構以使用SSH密鑰文件(例如Amazon EC2實例)連接到遠程主機?結合使用SSH密鑰文件
回答
另外值得一提的是,你可以使用命令行參數此:
fab command -i /path/to/key.pem [-H [[email protected]]host[:port]]
尋找一個簡單的fabfile與SSH密鑰文件的使用的工作示例是不容易的,出於某種原因。我寫了一個關於它的blog post(with a matching gist)。
基本上,用法是這樣的:
from fabric.api import *
env.hosts = ['host.name.com']
env.user = 'user'
env.key_filename = '/path/to/keyfile.pem'
def local_uname():
local('uname -a')
def remote_uname():
run('uname -a')
的重要組成部分,是設置env.key_filename
環境變量,使連接時的paramiko配置可以尋找它。
另一個很酷的功能可作爲面料1.4 - Fabric now supports SSH configs。
如果你已經擁有所有你~/.ssh/config
文件中的SSH連接參數,面料會原生支持它,所有你需要做的就是添加:
env.use_ssh_config = True
你fabfile的開始。
如上所述,Fabric將在時尚後支持.ssh/config文件設置,但使用ec2的pem文件似乎有問題。 IOW在env.host = ['servername']時,正確設置.ssh/config文件將通過'ssh servername'從命令行工作,並且無法與'fab sometask'一起工作。
這是通過指定我的fabfile.py中的env.key_filename ='keyfile'並且複製已在我的.ssh/config中的IdentityFile條目來克服的。
這可能是Fabric或paramiko,在我的例子中是Fabric 1.5.3和Paramiko 1.9.0。
對於我來說,下面沒有工作:
env.user=["ubuntu"]
env.key_filename=['keyfile.pem']
env.hosts=["xxx-xx-xxx-xxx.ap-southeast-1.compute.amazonaws.com"]
或
fab command -i /path/to/key.pem [-H [[email protected]]host[:port]]
但是,以下做:
env.key_filename=['keyfile.pem']
env.hosts=["[email protected]"]
或
env.key_filename=['keyfileq.pem']
env.host_string="[email protected]"
如果您使用'env.user =「ubuntu」'而不是'env.user = [「ubuntu」]'',您的第一個示例適用於我。 – 2016-04-20 19:58:13
我不得不這樣做。今天,我.py文件是儘可能的簡單,就像在@YuvalAdam的答案張貼的一個,但仍然我一直得到提示輸入密碼......
在paramiko
展望(通過面料SSH使用的庫)的日誌,我發現了一行:
Incompatible ssh peer (no acceptable kex algorithm)
我更新paramiko
有:
sudo pip install paramiko --upgrade
而現在它的工作。
- 1. 使用ssh密鑰寫入rsync的結構文件
- 2. 創建SSH祕密kubernetes密鑰文件
- 3. 使用cron與ssh密鑰
- 4. Linux的SSH密鑰使用
- 5. 使用SSH密鑰驗證SSH連接
- 6. ssh密鑰使用bash密碼
- 7. Git:使用密鑰文件使用密鑰文件訪問遠程存儲庫但不使用〜/ .ssh/config
- 8. 結合ECDSA密鑰
- 9. 創建使用ssh-凱基一個SSH密鑰不創建的.ssh文件夾
- 10. rsync文件作爲用戶使用ssh密鑰
- 11. Python結構roledefs和ssh密鑰
- 12. Hadoop備用SSH密鑰
- 13. 使用解密密鑰加密文件
- 14. 保護SSH密鑰
- 15. SSH密鑰短語
- 16. AWS EC2 SSH密鑰
- 17. SSH密鑰交換
- 18. 共享SSH密鑰
- 19. Google Cloud SSH密鑰
- 20. 如何使用java查找SSH RSA密鑰的密鑰長度
- 21. 面料不使用SSH密鑰
- 22. 如何在Phing中使用ssh密鑰
- 23. github帳戶SSH密鑰無法使用
- 24. MacOS:使用Bitbucket和Github,SSH密鑰?
- 25. 使用ansible另一個SSH密鑰
- 26. SELinux使用RSA密鑰阻止ssh
- 27. 如何使用多個ssh密鑰
- 28. 使用AWS的SSH密鑰管理
- 29. ssh使用python沒有RSA密鑰
- 30. 使用ssh密鑰連接到Jenkins
在練習中這是更好的答案。 – panchicore 2012-10-31 20:17:57
'env.key_filename' [可以包含字符串列表](http://docs.fabfile.org/en/latest/usage/env.html#key-filename)爲連接嘗試多個密鑰文件。 – 2014-04-22 12:29:14
我正在使用'settings'上下文管理器在我的一個任務中以編程方式設置密鑰,直到我將'key_filename ='/ path/to/key''更改爲'key_filename = ['/path/to/key']'如果其他人遇到問題,使key_filename成爲密鑰列表可能會修復它。這是與晶圓廠1.10.1和帕拉米科1.15.2 – Jaymon 2015-05-05 00:04:15