mac上配置ssh免密登錄遠程服務器


一般ssh登錄遠程服務器 都是需要賬號密碼的,每次登錄都要輸入賬號密碼比較麻煩,為了方便,可以配置免密登錄,ssh免密登錄及其原理看 這里

實現ssh免密登錄關鍵點在於公鑰和私鑰

如果之前用過 GitHub 或者 GitLab 之類基於 Git 的倉庫管理系統,那么你本地應該是配置過這個公鑰和私鑰的,這里要切記,

不用再重復配置一遍了!不用重新配置一遍了! 可能你會覆蓋掉你本地用的鑰匙,這樣的話,你可能就連不上你之前有權限的 Git 倉庫了。

如果你沒配置過,我們需要先來配置下,怎么配置呢?

# 通過 mkdir 創建這個目錄
mkdir .ssh
# 通過 cd 進入到該目錄下
cd .ssh

 

額外說明: 這個.ssh 目錄會在根目錄下,使用   cd ~   進入根目錄下, 使用  ls -a  展示根目錄下所有文件以及文件夾,

就可以看到生成的  .ssh  文件,如下圖:

 

然后執行

 ssh-keygen -t rsa -b 4096 -C "你的郵箱(可以隨便填寫)" 

 

一路回車到底,對於新手這里就先不要設置密碼了,不然就搞得太復雜了。執行完這一步命令之后,

可以看到  .ssh  的目錄下面生成了兩個文件  id_rsa(私鑰) 和  id_rsa.pub(公鑰) ,然后開起來 ssh 代理:

 eval "$(ssh-agent -s)" 

 

 最后,把 ssh key 加入到 ssh 代理中

 ssh-add ~/.ssh/id_rsa 

 

理論上走完這一步,你本地已經有了配置好的鑰匙文件,強調一下,這里要切換到本地操作,不是服務器上,在本地的根目錄的 ssh 文件夾下。

通過 cat 命令打印這個公鑰文件內容:

 cat .ssh/id_rsa.pub 

 

然后選中整段內容,復制一下,再來到服務器上。

然后,這一步很重要哈!這一步是為了,以后我們可以從 GitHub 或者 GitLab 之類的倉庫獲得倉庫的權限,因此我們要把剛才生成私鑰的過程重復一遍,這一步不做是不影響我們配置無密碼登錄的,再把剛才的流程走一遍,一模一樣的步驟:

ssh-keygen -t rsa -b 4096 -C "name@email.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

然后,通過簡單的 vim 命令,我們需要創建一個授權文件:

 vi .ssh/authorized_keys 

 

會打開一個編輯頁面,不要做任何輸入,切記,不要做任何輸入,同時要保證當前的輸入法切換到英文輸入狀態,然后按下鍵盤上的 i 鍵后,

command+v 把剛才復制的公鑰拷貝進來,再按一下鍵盤上的 ESC 退出鍵確保回到編輯狀態,然后同時按下 shift 和 冒號鍵,最后輸入 wq! 回車,

這個文件就自動創建了。這是簡單的 vim 快捷鍵,大家還是要多少了解一點點的,才能方便在服務器上增改文件。

這個操作很容易由於不熟悉 Linux 下的 vim 編輯而出錯,要多體會幾遍,再動手做。

如果沒有生效,可以對該文件進行一個 600 可讀授權,再重啟下 ssh 服務:

chmod 600 ~/.ssh/authorized_keys
sudo service ssh restart 

通過 ssh name@xx.xx.xx.xx 就直接登錄了,就不需要輸入密碼了,如果這一步沒有成功,可以按照這之前的順序,再仔細比對一遍,看有沒有遺漏項。

遇到的問題:

ssh 連接的時候 提示   WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!  如下圖所示

 

這種情況需要在本地  .ssh  目錄下 刪除  anthorized_keys  , 刪除的命令是   rm -rf authorized_keys , 然后重新連接即可

 

 


免責聲明!

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



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