當你通過 ssh, scp, rsync 等工具對遠端伺服器(如 vps、聯網的遠端桌面)進行作業時,常會遇見以下情況。
下面給出免密登入遠端的方法。一般來說,遠端需要儲存本地計算機的 ssh 公鑰,才能讓 ssh 相關工具進行免密操作。如通過 git push 到遠端的情形,除非使用 http 協議,否則遠端就需要本地的 ssh 公鑰才能免密完成 push。
如下檢視 ~/.ssh 目錄(ls -al ~/.ssh),其許可權必須為 700;目錄中檔案 id_rsa 為私鑰,許可權必須是 600;檔案 id_rsa.pub 為公鑰,known_hosts 是遠端計算機的指紋識別檔案,這兩個檔案許可權可以是 644。私鑰需要自己妥善保留,公鑰授權給可信任的遠端伺服器。
drwx------ 2 abc abc 4096 3月 9 13:00 .
drwxr-xr-x 120 abc abc 4096 3月 9 18:11 ..
-rw-rw-r-- 1 abc abc 390 5月 9 13:00 authorized_keys
-rw-r--r-- 1 abc abc 110 3月 9 13:17 config
-rw------- 1 abc abc 1811 3月 7 14:57 id_rsa
-rw-r--r-- 1 abc abc 390 3月 7 14:57 id_rsa.pub
-rw-r--r-- 1 abc abc 444 3月 8 23:07 known_hosts
若是不存在金鑰檔案,可以通過 ssh-keygen -o 或是 ssh-keygen -t rsa -c 「[email protected]」 命令生成一對金鑰,後者指定用 rsa 密碼,並加上自己的郵箱。
只需完成以下操作,即可免去登入遠端伺服器時輸入密碼的麻煩。下面以遠端 192.168.1.123 上的 root 使用者為例:
在本地生成授權檔案:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
將授權檔案拷貝到遠端:rsync ~/.ssh/authorized_keys [email protected]:/root/.ssh/
第 2 步也可以使用 scp 工具將公鑰授權檔案 authorized_keys 拷貝到遠端的 ~/.ssh 資料夾中。若是遠端沒有此資料夾,則拷貝不成功,需登入遠端新建 ~/.ssh 資料夾。使用 rsync 命令則沒有這個問題,同步工具可自動構建對應的目錄結構。
當然在執行第 2 步時仍須輸入密碼,但之後就不用了。在能夠實現免密遠端作業時,就可以編寫自動處理指令碼提高工作效率,例如在 vps 上自動部署靜態部落格網頁。
除了 git 工具,常用的遠端作業命令如下:
scp:雙向遠端拷貝工具。用法:scp path1 [email protected]:path2 從本地拷貝到遠端,path1 為本地路徑,path2 為遠端路徑。
rsync:雙向遠端同步工具。用法:rsync path1 [email protected]:path2 從本地同步到遠端。
本文參考《遠端連線伺服器—ssh詳解》。
ssh遠端免密登入
1 生成金鑰 ssh keygen 2 將公鑰傳到遠端伺服器 ssh copy id i ssh id rsa.pub p 22 root 伺服器ip 3 設定別名登入 host server 12 hostname 192.168.200.12 port 22 user root identity...
Linux 配置遠端免密登入
使用ssh keygen命令生成金鑰對 ssh keygen t rsa t表示型別選項,這裡採用rsa加密演算法 使用ssh copy id命令將公鑰複製到遠端主機。ssh copy id會將公鑰寫到遠端主機的 ssh authorized key 檔案中 ssh copy id ldz 192....
linux 遠端ssh免密登入
先說說需求 我們平時開發 運維操作linux過程中經常需要實現將遠端檔案拷貝到本地或者本地檔案拷貝到遠端 執行遠端命令等操作 這個時候建立ssh免密登入應該是乙個比較好的選擇 原理 在linux系統中,ssh是遠端登入的預設工具,因為該工具的協議使用了rsa dsa的非對稱加密演算法 非對稱加密演算...