客戶端:
Windows
MacOS
Linux
服務(wù)器:
Linux
配置免密登陸步驟:
1.生成私鑰文件
在客戶端終端下輸入以下命令
ssh-keygen -t rsa
每次執(zhí)行 ssh-keygen -t rsa 產(chǎn)生的私鑰文件都會不同
如果文件"~/.ssh/id_rsa"存在,會提示是否覆蓋該文件,此時可選擇"n"不覆蓋該文件而使用已有的id_rsa文件
如果選擇"y"則會重新生成"~/.ssh/id_rsa"文件。
接下來會提示輸入passphrase,回車確定使用空的passphrase,再次回車確認(rèn)
(這里如果輸入密碼的話,后續(xù)登陸每次都要輸入這個密碼,與未配置免密登陸沒有太多區(qū)別,如果是要省去輸入密碼的麻煩則建議不要輸入密碼,回車即可)。
然后會重新生成id_rsa文件和id_rsa.pub文件(在~/.ssh目錄下)
2.在終端中執(zhí)行scp遠(yuǎn)程拷貝命令
scp ~/.ssh/id_rsa.pub your_username@your_server_ip:~/.ssh
將生成的id_rsa.pub文件拷貝到遠(yuǎn)程服務(wù)器的 ~/.ssh 目錄下
此時還需要輸入root用戶密碼進(jìn)行訪問
3.將公鑰追加到授權(quán)KEY里面
在服務(wù)器終端下輸入下面的命令
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果遠(yuǎn)程服務(wù)器上已經(jīng)存在"~/.ssh/authorized_keys"文件,那么需要編輯服務(wù)器上"~/.ssh/authorized_keys"文件,將客戶端機器上的"id_rsa.pub"文件內(nèi)容追加到"~/.ssh/authorized_keys"文件中。
如果服務(wù)器上沒有"~/.ssh/authorized_keys"文件,執(zhí)行下面這條命令
cp?? id_rsa.pub?? authorized_keys
即將公鑰復(fù)制為authorized_keys文件
然后即可把id_rsa.pub刪掉
rm id_rsa.pub
4. 設(shè)置權(quán)限并重啟ssh服務(wù)
生成authorized_keys ,修改authorized_keys權(quán)限為600 .ssh文件夾權(quán)限為700 公鑰私鑰權(quán)限為644后。
ssh 登陸 發(fā)現(xiàn)還是要輸入密碼。
進(jìn)行了ssh -v 命令調(diào)試,發(fā)現(xiàn)報了訪問私鑰的異常。
最后排查發(fā)現(xiàn) root/文件夾的權(quán)限不對。按照sshd的要求/root/ 文件夾的權(quán)限應(yīng)該為700 或者755?
解決方案 chmod? 700 ~
5.客戶端測試連接
command+N新建終端窗口,輸入ssh登錄命令
此時不需要再輸入密碼就可以訪問遠(yuǎn)程服務(wù)器,scp等基于ssh的命令同樣不需要密碼了
6. 用于GitHub免密登錄
第一步生成的id_rsa.pub文件也可以用于github的免密登錄。
如何找到http://github.com上的ssh設(shè)置:右上角圖標(biāo)(view profile and more)=》Settings =》 SSH and GPG keys,在Key輸入框中輸入公鑰(id_rsa.pub中的文件內(nèi)容)。