服務器免密登陸和傳輸配置

服務器免密登陸與傳輸

服務器的登陸可以通過ssh user@ip 加密碼完成,但每次登陸都需要輸入一次密碼,比較麻煩。而且使用scp 或 rsync拖文件的時候也需要輸密碼(堡壘機下的多個服務器不免密的話直接無法互相傳文件)。這裏簡單寫一下免密登陸和傳輸的方法。

1. ssh兩種驗證方式

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應用層基礎上的安全網絡協議。它是專爲遠程登錄會話(甚至可以用Windows遠程登錄Linux服務器進行文件互傳)和其他網絡服務提供安全性的協議,可有效彌補網絡中的漏洞。通過SSH,可以把所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。目前已經成爲Linux系統的標準配置。
ssh 提供了兩種級別的驗證方式
第一種級別(基於口令的安全驗證):只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人攻擊”這種方式的攻擊。

ssh -p 123 [email protected] (端口號默認爲22)

第二種級別(基於密鑰的安全驗證):你必須爲自己創建一對密鑰,並把公鑰放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密鑰進行安全驗證。服務器收到請求之後,先在該服務器上你的主目錄下尋找你的公鑰,然後把它和你發送過來的公鑰進行比較。如果兩個密鑰一致,服務器就用公鑰加密“質詢”(challenge)並把它發送給客戶端軟件。客戶端軟件收到“質詢”之後就可以用你的私鑰在本地解密再把它發送給服務器完成登錄。與第一種級別相比,第二種級別不僅加密所有傳輸的數據,也不需要在網絡上傳送口令,因此安全性更高,可以有效防止中間人攻擊。下面說的免密登陸便是基於這一種安全驗證方式。

2. 在本機生成密鑰對

ssh-keygen -t rsa -P ''  #-t表示類型選項,-P表示密碼

根據提示一步步按enter即可,這裏密碼默認爲空。執行結束後會在/home/用戶名 目錄下生成.ssh文件夾(如果之前沒有的話),文件夾下包含私鑰文件 id_rsa公鑰文件 id_rsa.pub

3. 把公鑰複製到遠程主機中

vim ~/.ssh/id_rsa.pub

把生成公鑰裏的內容拷貝到目標服務器的~/.ssh/authorized_keys文件裏。

完成後,不論是登陸還是傳輸文件都不需要輸密碼

4. 服務器之間的數據傳輸

1. scp

scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。可能會稍微影響一下速度。兩臺主機之間複製文件必需得同時有兩臺主機的複製執行帳號和操作權限。

  • scp 後面可以跟很多命令參數,如-r(遞歸複製整個目錄),-P(指定傳輸用到的端口號)
# 遠程文件拷貝到本地
scp [email protected]:/home/zhangxiao/listen1.txt /home/zhangxiao/code/
# 本地文件拷貝到遠程
scp /home/zhangxiao/everything.txt [email protected]:/home/zhangxiao
# 遠程目錄拷貝到本地
scp -r [email protected]:/data/zhangxiao/code ./
# 本地目錄拷貝到遠程

可以參考linux tools quick tutorial

2. rsync

rsync是一種常用的文件同步工具,全稱爲remote sync(遠程同步)。與scp相比,rsync每次同步文件時都會檢查目標路徑下的文件,只需要同步差異文件;同時,可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等。之前拷貝一批文件,不知道怎麼搞的很多源目錄下都有自己的軟連接,使用scp的時候循環拷貝,一直到timeout才停。後來用rsync忽略掉軟連接纔算勉強完成拷貝。

# 遞歸同步目錄並輸出詳細信息
rsync -av [email protected]:/data/zhangxiao/code ./ 

# 拷貝時將軟連接常規處理,並保留因故沒有完成傳輸的文件
rsync -avPL [email protected]:/data/zhangxiao/code ./ 

# -v, --verbose 詳細模式輸出 
# -a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD 
# -l, --links 保留軟鏈結 
# -L, --copy-links 想對待常規文件一樣處理軟鏈結 
# -p, --perms 保持文件權限 
# -P 等同於 --partial 保留那些因故沒有完全傳輸的文件,以是加快隨後的再次傳輸 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章