Linux scp 免密碼 傳輸文件


Linux scp 免密碼 傳輸文件


 

背景介紹

最近項目是集群化部署(由 node1,node2,node3 三台 CentOS 7.4 的虛擬機構成)。

但是,涉及到跨機器同步文件的問題,想通過寫shell文件實現,用 crontab 設置定時任務,定時執行改腳本。

由於每次都需要輸入密碼,導致定時任務沒法正常工作,因此,需要三台機器之間可以免密碼互相訪問。


 

建立SSH的信任關系

以實現 node1 免密碼給 node2 scp傳輸文件為例說明,需要如下幾個步驟:

1、生成 node1 的秘鑰(私鑰和公鑰)

1)進入 node1 的 /root/.ssh 目錄

cd /root/.ssh/

 

2)執行如下命令,生成公鑰和私鑰(此時,一路回車即可)

ssh-keygen -t rsa

 

其中,id_rsa 私鑰id_rsa.pub 公鑰。 

2、將 node1 的 id_rsa.pub中的內容追加到 node2 的authorized_keys 認證文件中 

1)將 node1 的公鑰(id_rsa.pub)信息,輸出到臨時認證文件  authorized_keys_node1 中

cat id_rsa.pub >authorized_keys_node1

 

 

2)將 authorized_keys_node1 文件 scp 到 /root/.ssh/ 目錄下

scp authorized_keys_node1 root@node2:/root/.ssh/

 

 

3)登錄到node2節點,進入 /root/.ssh目錄

cd /root/.ssh/

 

4)將 node1 的公鑰信息,追加到 node2 的認證文件(authorized_keys)中

cat authorized_keys_node1 >>authorized_keys

至此,node1 到 node2 的信任關系建立好了,node1 scp文件到 node2,就不在需要輸入密碼驗證了。

其他機器之間的信任關系,如有需要,可以依此方法進行配置。


 

 

【額外說明】

1、上面用到了 Shell 的 > 和 >>,因為使用場景不同。

如有不清楚二者異同點的同學,可以參考博文:https://www.cnblogs.com/miracle-luna/p/11809725.html

 

2、文中提到的 id_rsa 和 id_rsa.pub 中的 rsa,是指的 RSA加密算法。

RSA加密算法是一種非對稱加密算法。在公開密鑰加密電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。

對極大整數做因數分解的難度決定了RSA算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA算法愈可靠。假如有人找到一種快速因數分解的算法的話,那么用RSA加密的信息的可靠性就肯定會極度下降。但找到這樣的算法的可能性是非常小的。今天只有短的RSA鑰匙才可能被強力方式解破。到目前為止,世界上還沒有任何可靠的攻擊RSA算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM