python 生成ssh秘鑰對

2021-07-15 13:24:07 字數 1314 閱讀 1431

工作中要用到ssh-keygen生成的公鑰和私鑰,查了很多**,大部分人用的是crypto.publickey包中的rsa類來模擬ssh-keygen生成秘鑰對。偶然間發現paramiko也有乙個可以用來生成秘鑰對的類(paramiko.rsakey.rsakey),最後選擇用paramiko的rsakey來生成秘鑰對。關於paramiko生成不同加密方式的秘鑰對的詳細資訊,請到官網上看

def gen_keys(key=""):

"""生成公鑰 私鑰

"""output = stringio.stringio()

sbuffer = stringio.stringio()

key_content = {}

if not key:

try:

key = rsakey.generate(2048)

key.write_private_key(output)

private_key = output.getvalue()

except ioerror:

raise ioerror('gen_keys: there was an error writing to the file')

except sshexception:

raise sshexception('gen_keys: the key is invalid')

else:

private_key = key

output.write(key)

try:

key = rsakey.from_private_key(output)

except sshexception, e:

raise sshexception(e)

for data in [key.get_name(),

" ",

key.get_base64(),

" %s@%s" % ("magicstack", os.uname()[1])]:

sbuffer.write(data)

public_key = sbuffer.getvalue()

key_content['public_key'] = public_key

key_content['private_key'] = private_key

logger.info('gen_keys: key content:%s'%key_content)

return key_content

我最後是把公鑰和私鑰放在了乙個字典裡,你也可以根據需要生成檔案,這個類還是很方便的

附錄 生成SSH秘鑰

附錄 生成ssh秘鑰 ssh是建立在應用層和傳輸層基礎上的安全協議,其目的是專為遠端登入會話和其他網路服務提供安全性的保障,用過ssh遠端登入的人都比較熟悉,可以認為ssh是一種安全的shell。http登入是需要使用者名稱和密碼的,要實現無密碼登入,就需要建立ssh 金鑰 ssh key ssh ...

git生成SSH秘鑰

進入git bash 輸入cd ssh 沒有的話,自己建立mkdir ssh,然後進入該資料夾完成生成秘鑰步驟 配置全域性的name和email,這裡是的你github或者bitbucket的name和email git config global user.name xkwg git config...

SSH秘鑰對登入

這裡的ssh秘鑰對登入是在linux中配置hadoop時用到的,為了使各個伺服器之間能夠無密碼的相互通訊,但同樣也可用在兩台linux之間的相互通訊,也可用在伺服器管理人員無密碼遠端登入伺服器,這樣做既安全又方便。這裡把兩台伺服器作為實驗物件,一台成為ssh客戶機,一台成為ssh伺服器 大致流程是先...