1. 程式人生 > >伺服器免密登入以及SecureCRT免密登入

伺服器免密登入以及SecureCRT免密登入

ssh免密登入原理:

ssh免密登入使用公鑰私鑰金鑰對的形式對客戶端伺服器進行驗證

核心原則:公鑰加密的資訊,只有私鑰能解密,詳情百度rsa演算法

tips:也有私鑰加密,公鑰解密的加密演算法,實際應用是訊息簽名(https第三方信任機構)

具體互動過程是,服務端隨機生成字串使用公鑰加密之後傳送給客戶端伺服器,客戶端伺服器使用私鑰解密出明文傳送給服務端進行驗證,若相等則成功建立連線

1、SecureCRT免密登入:

開啟SecureCRT工具--tools--create public key,選擇演算法按照步驟建立公鑰私鑰,登入linux系統

cd ~
檢視使用者目錄下有沒有.ssh資料夾,沒有則新建
mkdir .ssh
進入.ssh資料夾檢視有沒有authorized_keys檔案,沒有則新建
touch authorized_keys
開啟剛剛工具生成的id_rsa.pub檔案,將裡面的內容拷貝到authorized_keys檔案中

在linux中執行

service sshd restart
開啟secureCRT新建連線--SSH2



在圖示位置選擇剛剛生成金鑰對的私鑰,點選ok,然後即可連線(第一次登陸可能要驗證一次你輸入的短語,照之前的短語再輸入一次即可)

2、伺服器免密登入

未安裝ssh的先安裝一下

登入A伺服器使用者a

ssh-keygen -t rsa
連續3個回車在使用者目錄下的.ssh資料夾中會生成id_rsa(私鑰),id_rsa.pub(公鑰),檢視id_rsa.pub
cat id_rsa.pub
登入B伺服器使用者b,將id_rsa.pub中的內容拷貝到B伺服器~/.ssh/authorized_keys檔案中(追加)

在B伺服器中編輯sshd_config配置檔案

vi /etc/ssh/sshd_config

確保 

PubkeyAuthentication yes

AuthorizedKeysFile  .ssh/authorized_keys

RSAAuthentication yes

需要的話可以開啟

PermitRootLogin yes

tips:這裡還可以配置AllowUsers,嚴格控制可ssh登入的使用者

使用b使用者配置許可權

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
注意這裡的許可權要求是嚴格的,不能高也不能低

在B伺服器中重啟ssh,載入配置檔案

service sshd restart

最後,登入A伺服器使用者a遠端連線B伺服器下的b使用者
ssh -vv [email protected]
-vv可以列印A服務連線日誌,

B伺服器的日誌在/var/log/secure或者/var/log/message下可以檢視,連線失敗可以檢視這兩個部分的日誌排查

tips:

[email protected]
b可以預設,但是最好不要,預設就必須a和b的使用者名稱一模一樣才能登陸,這個坑坑死我了