參考:
mac下配置centos的ssh登陸使用RSA公私鑰
阮一峯:ssh原理和應用html
公鑰登陸原理:
非對稱加密方式,公鑰加密,私鑰解密
本地生成一對密鑰(公鑰和私鑰),並把公鑰放到須要訪問的服務器上。若是須要鏈接到SSH服務器上,客戶端軟件就會向服務器發送請求,請求用本地的密鑰進行安全驗證,服務器收到請求後,先在該服務器上的主目錄下尋找客戶端的公鑰,而後把它和客戶端發來的公鑰進行比較。若是一致,服務器就用這個公鑰加密「質詢」(challenge)並把它發送給客戶端軟件,客戶端本地接收到「質詢」以後,就可用本地的私鑰解密,而後把它md5後發給服務器,服務器將本地的「輪詢」值md5後對比一致即創建鏈接,整個傳輸途中只有本地公鑰和加密及解密「質詢」的md5值傳輸,無明文傳輸。shell
先生成本地公鑰和私鑰centos
ssh-keygen #不要輸入任何東西,一概回車 #會在~/.ssh/下生成公鑰和私鑰
先開啓密碼登陸(晚點再關閉),若是以前沒有生成過公鑰和私鑰,就直接在 ~/.ssh/
新建 authorized_keys
(注:不要執行ssh-keygen,若是.ssh下面有內容,可先所有刪除) ,將Mac本地端的 id_rsa.pub
內容複製進去(注:若是以前已經有內容,就跟在後面)安全
vi ~/.ssh/authorized_keys
如今爲本地mac的私鑰設置權限:服務器
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa
設置服務器上的文件權限:ssh
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
vi /etc/ssh/sshd_config #將PasswordAuthentication設置成no,而後重啓 service sshd restart
ssh root@ip # 指定端口 ssh root@ip -p 端口號
注意原密碼登陸的窗口先不要斷開和關閉,新開一個shell窗口無密碼登陸看看,若是能正常鏈接上,方可關閉原密碼鏈接的窗口,防止無密碼登陸失敗。加密
注意將本地的私鑰和公鑰同步到雲端,方便給其餘電腦使用;rest
iTerm2中設置 Profiles
,選中 command
,輸入 ssh root@ip
,直接在iTerm2上方菜單 Profiles
選擇服務器快捷登陸,很是方便。code
只須要將客戶端的公鑰加入到服務器文件~/.ssh/authorized_keys
後面便可,注意須要將公鑰本身組裝一下
原公鑰內容:htm
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20151019" 內容... ---- END SSH2 PUBLIC KEY ----
須要本身組合一下放到服務器的文件~/.ssh/authorized_keys
後面,ssh-rsa+空格+公鑰內容+註釋內容:
ssh-rsa 內容...