一 實驗目的
一般在用戶使用ssh客戶端登陸ssh服務器時需要使用用戶名和密碼,本實驗使用非對稱加密的方式實現了無密碼登陸ssh服務器。
二 實驗流程
、
1 在客戶端生成非對稱密鑰對
2 將非對稱密鑰中的公鑰發送給ssh服務器端相應的帳號
3 當客戶端通過ssh協議與服務器端發起連接時,客戶端將私鑰加密過的簽名發送給服務器端,服務器端使用客戶端的公鑰確認該簽名有效并通過認證,然后建立ssh連接
三 實驗過程
1 客戶端生成非對稱密鑰
# cd ~/.ssh
使用ssh-keygen命令可以自動生成密鑰對
ssh-keygen的用法如下: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-p new_passphrase] [-C comment] [-f output_keyfile] -q:安靜模式 -b:指定生成密鑰的大小 -t:加密類型 -p:設置私鑰的密碼 -C:注釋 -f:指定輸出文件名
在這里直接使用缺省參數即可創建沒有口令的非對稱密鑰對,也可以在后續選項里添加私鑰密碼
# ssh-keygen
或者使用-p參數將沒有密碼的私鑰加密
# ssh-keygen -p -f id_isa
然后使用在登陸ssh服務器之前使用ssh agent管理鏈接,如果私鑰未被加密,可以省略此步驟
# ssh-agent bash # ssh-add
2 將私鑰傳送給ssh服務器
使用ssh-copy-id命令可以自動將私鑰發送給ssh服務器端,并自動更改密鑰名稱
ssh-copy-id [-f] [-n] [-i [identity_file]] [-p port] [-o ssh_option] [user@]hostname
可選參數有: -f:強制模式,不檢測服務器上是否已經有了私鑰 -n:檢測服務器上的賬戶是否已經有客戶端的公鑰 -i:確認文件內容 -p:設置ssh端口 -o:設置ssh選項
在本實驗使用如下方法:
# ssh yangfan@172.18.55.6
3 連接ssh服務器
# ssh yangfan@172.18.55.6 Last login: Wed Apr 12 22:21:24 2017 from 172.18.100.9 [yangfan@centos6 ~]$
4 更新密鑰
如果遇到客戶端需要更換密鑰的情況,需要重復以上步驟,最后執行如下命令將私鑰更新到ssh-agent
# ssh-add
原創文章,作者:realmaster,如若轉載,請注明出處:http://www.www58058.com/73235