Ubuntu 啟用ssh服務(wù)比較簡(jiǎn)單,但是使用證書免密碼登錄,有點(diǎn)麻煩,大部分百度搜索出來(lái)的文檔都沒(méi)有把處理說(shuō)清楚,但是原理還是比較清晰的; 以下示例中ubuntu16上測(cè)試通過(guò)。
一:?jiǎn)⒂?ssh 服務(wù) 安裝
sudo apt install openssh-server
重啟ssh服務(wù)(只有當(dāng)修改 /etc/ssh/ssh_config 后,才需要重啟),本示例中不需要修改該文件
sudo /etc/init.d/ssh restart
二:客戶端登錄 使用用戶名和密碼登錄
ssh server_ip -l username
或者
ssh username@server_ip
三:使用證書免密碼登錄 1、在要登錄的客戶端創(chuàng)建key
ssh-genkey -P “” #-P 表示創(chuàng)建證書不使用密碼
運(yùn)行完成后將在 ~/.ssh/ 中產(chǎn)生 id_rsa id_rsa.pub 兩個(gè)文件, 第二個(gè)文件是公鑰,需要放到服務(wù)器相應(yīng)ssh用戶的 ~/.ssh/ 目錄的 authorized_keys 文件中
客戶端系統(tǒng)當(dāng)前登錄的用戶和需要登錄的ssh服務(wù)器賬號(hào)用戶不需要有任何對(duì)應(yīng)關(guān)系,后面登錄ssh服務(wù)器時(shí),只需要傳入這里生存的私鑰的位置即可。
2、把 id_rsa.pub 文件拷貝出來(lái),弄到 ssh 服務(wù)器上去 sudo nautilus #這樣打開文檔管理器才可以有root 權(quán)限,才可以從任意目錄拷貝文件
3、轉(zhuǎn)到 ssh 服務(wù)器 3.1 創(chuàng)建要使用 ssh 登錄的用戶,如果已創(chuàng)建,跳過(guò) sudo adduser gituser1 #這里用gituser1示例
3.2 切換到gituser1用戶創(chuàng)建 .ssh 目錄 如果已經(jīng)有該目錄,跳過(guò) su gituser1 cd ~ mkdir .ssh
3.3 導(dǎo)入公鑰文件到用戶的~/.ssh/authorized_keys 將前面的 id_rsa.pub 文件弄到 ~ 目錄中 sudo mv ~/id_rsa.pub ~/.ssh/authorized_keys 如果 authorized.keys 文件已存在,將內(nèi)容追加到該文件中 sudo cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
4、客戶端使用證書免密碼登錄
ssh -i ~/.ssh/id_rsa gituser1@server_ip
5、客戶端一般不會(huì)只ssh這一個(gè)服務(wù)器,修改gituse1的私鑰名稱 將 ~/.ssh/id_rsa 改名 sudo mv ~/.ssh/id_rsa ~/.ssh/id_rsa_gituser1_svr1 登錄命令相應(yīng)調(diào)整為 ssh -i ~/.ssh/id_rsa_gituser1_svr1 gituser1@server_ip
6、讓ssh默認(rèn)使用證書,不需要用i參數(shù)指定
6.1 方法一:修改 /etc/ssh/ssh_config 文件 sudo gedit /etc/ssh/ssh_config 加入以下代碼段 IdentityFile ~/.ssh/id_rsa_gituser1 然后用ssh登錄就不需要用 -i 參數(shù)指定證書了 這個(gè)方法是修改了全局證書, 日常使用中我們會(huì)通過(guò)ssh登錄各個(gè)不同的服務(wù)器, 這顯然是不行的,現(xiàn)在需要下面這個(gè)方法;6.2 方法二:修改 ~/.ssh/config sudo gedit ~/.ssh/config 寫入如下 host usvr1 HostName 192.168.11.202 port 22 IdentityFile ~/.ssh/id_rsa_gituser 以后就可以用下面命令登錄 ssh gituser1@usvr1 我們還可以在config文件中加入其他ssh服務(wù)器。如果對(duì)你有幫助,請(qǐng)微信掃一掃打賞。 
新聞熱點(diǎn)
疑難解答
圖片精選