梗概:html
一、生成key pair, 先以SecureCRT 爲例算法
密鑰類型有RSA 和 DSA兩種,sshd_config裏面兩種都支持,通常選用RSA.vim
長度512-2048位任選。安全
通行短語:這個地方相似是一條口令,在創建Session的時候會要求輸入,我的以爲不必填寫,填了至關於在證書登錄的過程當中又加入了密碼這種東西。服務器
註釋:隨便填,能夠做爲一段描述,這段內容會在私鑰的內容裏能夠看到。ssh
二、生成密鑰對後,保存公鑰和私鑰到本地。私鑰會自動應用於全局變量,也能夠手動添加。ide
公鑰:Identity.pub工具
私鑰:Identityui
客戶端配置完畢。加密
三、將公鑰 identity.pub 上傳至服務器上的用戶目錄 ~/.ssh/authorized_keys ,名字隨意,和sshd_config裏配置文件一致便可。
mkdir .ssh #在須要開啓ssh鏈接的用戶目錄下創建 .ssh目錄,不存在的話就本身建立。
chmod 700 .ssh
上傳的方式有多種
1)若是是虛擬機,直接拽入或者經過share folder。
2)FTP ,事先要搭建好FTP服務器如vsftpd. 可使用命令行方式+第三方工具。
3)Samba ,如前文描述。
4)SFTP(Secure FTP), SFTP是基於SSH 協議的,SecureCRT自帶,鏈接後使用和FTP同樣,命令行+第三方工具(FileZilla/Winscp)
PS1:FTP和SFTP都是文件傳輸協議,FTP默認端口是23,SFTP基於SSH,默認端口和SSH同樣是22. SFTP是加密的文件傳輸,比FTP安全。
考慮到SSH證書登錄並無完成, 能夠暫時容許SSH用密碼登錄進去創建一個會話,而後把公鑰上傳上去。
ls 列出服務器當前目錄 ,cd 切換目錄
lls 列出本地當前目錄 ,lcd 切換本地當前目錄
put 上傳至服務器,get 下載至本地,因此咱們使用put identity.pub便可。
PS2 :因爲咱們的SSH使用的是OpenSSH ,低版本CRT不支持在本地導出openssh格式,可先上傳至服務器而後使用ssh-keygen轉換。
#ssh-keygen -i -f Identity.pub >>~/.ssh/authorized_keys #這個地方用>>追加符號,由於這個文件裏可能存在兩個不一樣的公鑰,好比我下文用putty生成的pair key.
#chmod 644 .ssh/authorized_keys
四、更改ssh配置文件
vim /etc/ssh/sshd_config #修改ssh配置文件,須要root權限
PermitRootLogin no #禁止root登陸
PubkeyAuthentication yes #啓用公告密鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys #這個地方名字保持一致便可
RSAAuthentication yes #容許RSA密鑰
PasswordAuthentication no #禁止密碼驗證登陸,若是啓用的話,OpenSSH的RSA認證登陸就沒有意義了
保存後重啓ssh 服務
# service ssh restart
五、驗證登錄
用戶名就是你存放公鑰的用戶,身份驗證的地方口令不選。
鏈接過程若是在1填了口令,會讓你輸入口令;沒有口令的話,應該很快很自動連上。
Putty部分主要是Key pair這部分生成的步驟略有不一樣,其餘都是同樣的,再也不贅述。
最後對密鑰登錄過程當中一些細節的回顧。
SecureCRT 和 putty使用一樣的加密算法,但在生成key pair的格式上有所不一樣。
一、先看看公鑰:1 (OpenSSH 格式)
再看看私鑰:2.ppk
私鑰內容上:Public+Private組成。
二、再來看看securecrt
這時候的公鑰仍是VAN DYKE格式,在服務器上用命令轉爲OpenSSH格式後,authorized_keys內容以下:
上面的是putty的公鑰,下面是securecrt的公鑰,服務器上是能夠存放多個公鑰的,若是再有一對key pair,直接往authorized_keys裏面繼續添加這段隨機碼便可,轉不轉成openssh格式卻是無所謂。
參考連接:
http://www.ssc.wisc.edu/sscc/pubs/linstat_public_key.htm
http://blog.chinaunix.net/uid-20639775-id-3207171.html
http://blog.csdn.net/zhaohaifan/article/details/8051694