2017-09-17 46 views
1

我有一個python腳本包含以下功能:變化sshpass到一個更安全的解決方案

def upload2server(file): 
    host_name = 'example.ex.am.com' 
    port_num = '432' 
    user_name = 'user' 
    password = 'passw' 
    web_path = '/example/files/' 
    full_webpath = user_name + '@' + host_name + ':' + web_path + args.key 
    pre_command = 'sshpass -p "' + password + '" scp -P' + ' ' + port_num + ' ' 

    scp_comm = pre_command + file + ' ' + full_webpath 

    os.system(scp_comm) 

我有2個問題:

  1. 如何不安全的是,如果我運行此腳本從遠程網絡使用端口轉發?
  2. 哪些方法可以使此上傳更安全?

謝謝!

回答

0

就我個人而言,我會爲每個主機生成一個SSH密鑰對,然後你完全可以忘記在你的scp命令中使用密碼。內嵌密碼並不是一個問題,但它確實意味着您的密碼將記錄在該用戶的〜/ .bash_history文件中。

+0

只是爲了確保我清楚地理解它:我生成一個ssh密鑰對:ssh-keygen -t -rsa我得到一個公鑰和一個私鑰。我將公鑰複製到服務器上,並將私鑰保留在客戶端計算機上。現在我可以安全認證了。我的問題:如果我想從我的筆記本電腦,PC,兩部手機,平板電腦連接到服務器,我應該爲每臺設備生成還是將該私鑰複製到我第一次生成的每臺設備?謝謝 – Marci

+0

是的,你明白了@Marci!您應該爲每個設備生成一個不同的密鑰,並將其公鑰複製到服務器授權的主機目錄中。 – Kyle

+0

我需要的任務是一個與服務器進行ssh連接的移動應用程序。我應該讓這個整個SSH密鑰生成並將它複製到服務器的東西,當他們下載應用程序,所以在android/java代碼? – Marci

相關問題