Python paramiko實現跳轉控制

2021-09-14 04:57:07 字數 1513 閱讀 7620

通過ssh 的proxycommand,建立關係,用paramiko模組,呼叫proxycommand方法

一、通過一台跳板機免密 (a主機 b跳板機 c主機)

做好a免密登入b,b免密登入c ,

a主機~/.ssh下新增檔案b_private,內容為b的私鑰

a主機~/.ssh下增加config檔案,內容為

host c主機ip 

user gcp

port 22

identityfile=~/.ssh/b_private

proxycommand ssh -w %h:%p b主機ip

二、通過多台跳板機免密 ( a主機 b跳板機 c跳板機 d主機)

做好a免密登入242,242免密登入38,38免密登入136,  

a主機~/.ssh下新增檔案33的私鑰

a主機~/.ssh下新增檔案22的私鑰

a主機~/.ssh下新增檔案111的私鑰

a主機~/.ssh下增加config檔案,內容為

host go33

hostname 172.**.**.***

user csdn

identityfile ~/.ssh/id_rsa.name.***

forwardx11 no

stricthostkeychecking no

forwardagent yes

userknownhostsfile /dev/null

host go22

hostname 172.**.**.**

user csdn

identityfile ~/.ssh/id_rsa.soft.**

forwardx11 no

stricthostkeychecking no

userknownhostsfile /dev/null

proxycommand ssh -w %h:%p csdn@go33

host go111

hostname 192.***.**.***

user csdn

identityfile ~/.ssh/id_rsa.software.***

forwardx11 no

stricthostkeychecking no

userknownhostsfile /dev/null

proxycommand ssh -w %h:%p csdn@go22

生成金鑰ssh-keygen -t rsa -f id_rsa.name

上傳金鑰ssh-copy-id -i ~/.ssh/id_rsa.name.pub [email protected]

多個使用者需要免密登入時:

如果伺服器的目錄中沒有authorized_keys 檔案,只需要將id_rsa.pub公鑰檔案的名稱更改為authorized_keys,如果已經有了authorized_keys檔案,使用 「>>」重定向符將使用者公鑰追加到authorized_keys檔案中即可。

附:config配置詳解:

python paramiko 各種錯誤

這個錯誤出現在伺服器接受連線但是ssh守護程序沒有及時響應的情況 預設是15s 要解決這個問題,需要將paramiko的響應等待時間調長。transport.py中def init 初始化函式中 how long seconds to wait for the ssh banner self.ban...

Python Paramiko模組的使用

windows下有很多非常好的ssh客戶端,比如putty。在python的世界裡,你可以使用原始套接字和一些加密函式建立自己的ssh客戶端或服務端,但如果有現成的模組,為什麼還要自己實現呢。使用paramiko庫中的pycrypto能夠讓你輕鬆使用ssh2協議。paramiko的安裝方法網上有很多...

python paramiko 遠端操作linux

遠端執行linux命令等 paramiko import traceback import paramiko as param,time,re from scp import scpclient ssh param.sshclient ssh.set missing host key policy ...