ssh-keygen用來生成ssh公鑰認(rèn)證所需的公鑰和私鑰文件。
ssh秘鑰登錄特點(diǎn):1.安全;2.免輸密碼。
對于安全級別較高的服務(wù)器,建議配好ssh登錄后禁掉密碼登錄。
缺點(diǎn):略繁瑣。如果你的只是臨時登錄一次,那么還是密碼吧。
一、生成秘鑰
秘鑰對需要在你自己的機(jī)器上生成,然后把公鑰放到服務(wù)器相應(yīng)用戶的~/.ssh目錄
執(zhí)行下面命令,默認(rèn)生成位置是~/.ssh
ssh-keygen
系統(tǒng)會詢問你文件名和秘鑰密碼,可以一路回車過去,會生成兩個文件:
- id_rsa 私鑰
- id_rsa.pub 公鑰
默認(rèn)使用rsa算法,你也可以用比較詳細(xì)的指令,如
ssh-keygen -t rsa -b 1024 -f yourkeyname -C "備注"
| 參數(shù) | 解釋 |
|---|---|
| -b | 采用長度1024bit的密鑰對,b=bits,最長4096,不過沒啥必要 |
| -t rsa | 采用rsa加密方式,t=type |
| -f | 生成文件名,f=output_keyfiles |
| -C | 備注,C=comment |
更多參數(shù)可運(yùn)行 man ssh-keygen
二、在服務(wù)器上安裝秘鑰
把上一步生成的公鑰發(fā)送到服務(wù)器(scp,FillZilla等)上,然后在服務(wù)器上執(zhí)行下面命令
cat id_rsa.pub >> ~/.ssh/authorized_keys
如此便完成了公鑰安裝,有個小坑值得一提:authenrized_keys的權(quán)限必須是600或更小,否則會連接失敗。
保險起見,執(zhí)行下面命令
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
另外,.ssh目錄的owner必須是ssh登錄用戶,不能是root
服務(wù)器ssh配置
修改服務(wù)器上的ssh配置文件,位置:/etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin no //禁止root登錄
PasswordAuthentication yes //允許密碼登錄,根據(jù)你的情況設(shè)置
然后重啟ssh服務(wù)
service sshd restart
三、連接服務(wù)器
方法1: 直接ssh
ssh -i ~/.ssh/id_rsa -p 22 user@yourservername
方法2(推薦):修改~/.ssh/config
Host server_alias(你的服務(wù)器別名)
HostName test.com/192.168.1.1(域名或IP)
Port 22
User user
IdentityFile id_rsa
保存后,登錄時只需執(zhí)行
ssh server_alias
多個服務(wù)器另起一行續(xù)寫就行了,就是這么簡單!