裸服务器证书,使用SSH证书远程登陆你的服务器
從某種角度講,SSH證書登陸遠程服務器要安全很多,但并不絕對安全。不過,它很方便,可以讓你每次無需使用密碼,就能快速ssh連接到你的服務器上面去,同時,雖然沒有使用密碼,卻不是采用緩存密碼的方式,而是通過一個公鑰和私鑰來完成這個過程。那么怎么來實現呢?我們這篇文章詳細闡述這個操作。
1.生成公鑰私鑰
Linux系統默認已經集成了ssh工具,因此我們只需要使用一個簡單的命令即可完成公鑰私鑰的生成。
$ cd ~
$ ssh-keygen -t rsa
$ cd .ssh
$ ls
這樣就可以了,你可以看到.ssh目錄下已經有了id_rsa、id_rsa.pub兩個密鑰文件。
2.將公鑰上傳到遠程服務器
我們要登陸遠程服務器,那么把我們的公鑰交給遠程服務器,一旦交付之后,今后我們遠程登陸時,服務器就可以通過這個公鑰識別本機,從而無需密碼即可完成登陸。在本機上執行如下操作:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xx.xxx.xx
執行之后,會讓你輸入一次遠程服務器root登陸的密碼,輸入即可。
通過這一步,我們將公鑰加入到服務器的認證列表中,被服務器“記錄在案”。
但是我在一次執行該操作的時候,發現服務器上得到的結果中出現了亂碼。為了保險起見,我的建議是,直接打開id_rsa.pub文件,復制里面的內容,然后登陸到服務器上面,進入~/.ssh/,打開authorized_keys,把內容拷貝到里面。
3.到服務器上調整配置
執行上面的步驟之后,我們還不是很放心,我們通過原始的ssh方法登陸到遠程服務器上面去,并對服務器上的一些配置進行調整。
$ ssh root@xxx.xx.xxx.xx
root@xxx > ### 登陸到服務器上了,當前目錄為/root,也就是root的~
$ cd .ssh ### 注意,如果服務器是裸機,應該是不存在.ssh目錄的,你需要自己創建.ssh目錄,當然,執行上面的步驟后,會自動創建.ssh目錄
$ chmod 600 authorized_keys ### 一些博客說要執行這個步驟,我們就執行吧
$ vi authorized_keys ### 你可以和你本地id_rsa.pub進行對比,看看authorized_keys中是否已經存在和你的公鑰一模一樣的記錄
通過上面這個步驟進行確認,確認之后,我們修改服務器的一些配置。
$ vi /etc/ssh/sshd_config
通過這條命令,打開sshd的配置文件,進行配置,修改下面的幾個值:
# 是否讓 sshd 去檢查用戶家目錄或相關檔案的權限數據,
# 這是為了擔心使用者將某些重要檔案的權限設錯,可能會導致一些問題所致。
# 例如使用者的 ~.ssh/ 權限設錯時,某些特殊情況下會不許用戶登入StrictModes no
# 是否允許用戶自行使用成對的密鑰系統進行登入行為,僅針對 version 2。
# 至于自制的公鑰數據就放置于用戶家目錄下的 .ssh/authorized_keys 內
RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys
注意上面紅色字,這幾個配置項,決定了你是否可以用ssh的key file進行登陸。這是必須要改的,改完之后,重啟sshd服務:
$ service sshd restart
OK,服務器端已經完成了,不用再管了。
4.本地ssh登陸配置
除了服務器要配置外,還要對本地進行配置,只有經過本步驟配置后,ssh登陸時,才會主動使用證書進行登陸,否則還是會提示輸入密碼。怎么配置呢,其實很簡單:
$ sudo vi /etc/ssh/ssh_config
打開本地的ssh配置文件,通過搜索,找到IdentityFile,你會發現是被注釋掉的,我們打開注釋,并且增加一行,結果如下:
IdentityFile ~/.ssh/id_rsa
IdentityFile /home/yourname/.ssh/id_rsa
保存,并重啟本地的ssh。OK,本地的ssh也配置好了。
現在,請測試使用ssh root@xxx.xx.xxx.xx進行登陸。
2015-11-09
7822
總結
以上是生活随笔為你收集整理的裸服务器证书,使用SSH证书远程登陆你的服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三菱plc 与 计算机 通讯,PC与三菱
- 下一篇: 服务器显示rl112,【RL-TCPne