主頁 > 知識庫 > 連接Linux的服務(wù)器時使用SSH密鑰認(rèn)證及解決自動斷連問題

連接Linux的服務(wù)器時使用SSH密鑰認(rèn)證及解決自動斷連問題

熱門標(biāo)簽:外呼系統(tǒng) 家政服務(wù)網(wǎng)絡(luò) 百度競價點擊價格的計算公式 電話機(jī)器人搭建 服務(wù)器配置 硅谷的囚徒呼叫中心 解決方案 美團(tuán)

A機(jī)器(ssh連接發(fā)起端,即客戶端):
 
添加一個測試用戶aaa
 

復(fù)制代碼
代碼如下:

[root@A ~]# useradd aaa

su成aaa
 
復(fù)制代碼
代碼如下:

[root@A ~]# su - aaa
[aaa@A ~]$

ssh-keygen創(chuàng)建rsa密鑰對
 
復(fù)制代碼
代碼如下:

[aaa@A ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/aaa/.ssh/id_rsa):       密鑰文件的保存位置
Created directory '/home/aaa/.ssh'.              默認(rèn)的密鑰文件存放目錄
Enter passphrase (empty for no passphrase):              密鑰文件的保護(hù)密碼
Enter same passphrase again:
Your identification has been saved in /home/aaa/.ssh/id_rsa.              生成的私鑰
Your public key has been saved in /home/aaa/.ssh/id_rsa.pub.    生成的公鑰
The key fingerprint is:
81:d7:de:e7:cb:7c:4e:16:d6:76:da:9d:30:25:76:09 aaa@A.test.com
 
復(fù)制代碼
代碼如下:

[aaa@A ~]$ ll

total 32K
drwx------  3 aaa  aaa  4.0K Sep 17 16:09 .
drwxr-xr-x  4 root root 4.0K Sep 17 16:09 ..
-rw-r--r--  1 aaa  aaa   304 Sep 17 16:09 .bash_logout
-rw-r--r--  1 aaa  aaa   191 Sep 17 16:09 .bash_profile
-rw-r--r--  1 aaa  aaa   124 Sep 17 16:09 .bashrc
-rw-r--r--  1 aaa  aaa   383 Sep 17 16:09 .emacs
drwx------  2 aaa  aaa  4.0K Sep 17 16:09 .ssh              創(chuàng)建出的.ssh目錄默認(rèn)權(quán)限為700
 
注意生成的私鑰文件的默認(rèn)權(quán)限是rw-------,即600(確保他人不能查看)
 
復(fù)制代碼
代碼如下:

[aaa@A ~]$ ll .ssh/

total 16K
drwx------  2 aaa aaa 4.0K Sep 17 16:09 .
drwx------  3 aaa aaa 4.0K Sep 17 16:09 ..
-rw-------  1 aaa aaa  951 Sep 17 16:09 id_rsa         私鑰文件
-rw-r--r--  1 aaa aaa  231 Sep 17 16:09 id_rsa.pub   公鑰文件

B機(jī)器(ssh的被連接端,即服務(wù)端):
 
添加bbb用戶
 

復(fù)制代碼
代碼如下:

[root@B ~]# useradd bbb

 
su成bbb
 
復(fù)制代碼
代碼如下:

[root@B ~]# su - bbb

手工在家目錄下建立.ssh目錄(如果不使用ssh-keygen工具的話)
 
復(fù)制代碼
代碼如下:

[bbb@B ~]$ mkdir .ssh

[bbb@B ~]$ ls -al

total 28
drwx------  3 bbb  bbb  4096 Sep 17 16:52 .
drwxr-xr-x  4 root root 4096 Sep 17 16:52 ..
-rw-r--r--  1 bbb  bbb   304 Sep 17 16:52 .bash_logout
-rw-r--r--  1 bbb  bbb   191 Sep 17 16:52 .bash_profile
-rw-r--r--  1 bbb  bbb   124 Sep 17 16:52 .bashrc
drwxrwxr-x  2 bbb  bbb  4096 Sep 17 16:52 .ssh
 
修改.ssh目錄的權(quán)限為700(非常重要?。?br /> 
復(fù)制代碼
代碼如下:

[bbb@B ~]$ chmod 700 .ssh

[bbb@B ~]$ ls -al

total 28
drwx------  3 bbb  bbb  4096 Sep 17 16:52 .
drwxr-xr-x  4 root root 4096 Sep 17 16:52 ..
-rw-r--r--  1 bbb  bbb   304 Sep 17 16:52 .bash_logout
-rw-r--r--  1 bbb  bbb   191 Sep 17 16:52 .bash_profile
-rw-r--r--  1 bbb  bbb   124 Sep 17 16:52 .bashrc
drwx------  2 bbb  bbb  4096 Sep 17 16:52 .ssh     確認(rèn)權(quán)限為700
 
在.ssh目錄里創(chuàng)建authorized_keys文件,并將A機(jī)器上aaa用戶的公鑰(id_rsa.pub)內(nèi)容寫入此文件(關(guān)鍵操作?。?br /> 
復(fù)制代碼
代碼如下:

[bbb@B ~]$ cd .ssh/

[bbb@B .ssh]$ vi authorized_keys

粘貼aaa的id_rsa.pub內(nèi)容進(jìn)來
 
修改authorized_keys的權(quán)限為400(非常重要?。?br /> 
復(fù)制代碼
代碼如下:

[bbb@B .ssh]$ chmod 400 authorized_keys

[bbb@B .ssh]$ ls -l authorized_keys
-r-------- 1 bbb bbb 231 Sep 17 16:53 authorized_keys 確認(rèn)權(quán)限為400

 
 
配置結(jié)束。

測試:從A機(jī)器上,在aaa用戶下,使用bbb帳號登錄B機(jī)器。
 
 

復(fù)制代碼
代碼如下:

[aaa@A ~]$ ssh -l bbb xxx.xxx.xxx.xxx
Enter passphrase for key '/home/aaa/.ssh/id_rsa': 會提示輸入私鑰保護(hù)密碼(在創(chuàng)建密鑰對時輸?shù)拿艽a,輸入正確后進(jìn)入系統(tǒng))
[bbb@B ~]$

 
安全的關(guān)鍵點在于如何安全地將id_rsa.pub的內(nèi)容傳遞到服務(wù)端
 
 
測試完畢,清理系統(tǒng)(刪除測試用戶帳號及其家目錄)
 
 
A機(jī)器上,exit到root下
 
復(fù)制代碼
代碼如下:

[root@A ~]# userdel -r aaa

B機(jī)器上,exit到root下
 
復(fù)制代碼
代碼如下:

[root@B ~]# userdel -r bbb

PS:SSH連接自動斷開問題的解決
用putty/SecureCRT連續(xù)3分鐘左右沒有輸入, 就自動斷開, 然后必須重新登陸, 很麻煩.
在網(wǎng)上查了很多資料, 發(fā)現(xiàn)原因有多種, 環(huán)境變量TMOUT引起,ClientAliveCountMax和ClientAliveInterval設(shè)置問題或者甚至是防火墻的設(shè)置問題. 所以可以這么嘗試:
1, echo $TMOUT
如果顯示空白,表示沒有設(shè)置, 等于使用默認(rèn)值0, 一般情況下應(yīng)該是不超時. 如果大于0, 可以在如/etc/profile之類文件中設(shè)置它為0.
Definition: TMOUT: If set to a value greater than zero, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive.

2. ClientAliveInterval 60
在/etc/ssh/sshd_config中增加ClientAliveInterval 60, ClientAliveInterval指定了服務(wù)器端向客戶端請求消息的時間間隔, 默認(rèn)是0, 不發(fā)送.而ClientAliveInterval 60表示每分鐘發(fā)送一次, 然后客戶端響應(yīng), 這樣就保持長連接了.這里比較怪的地方是:不是客戶端主動發(fā)起保持連接的請求(如FTerm, CTerm等),而是需要服務(wù)器先主動.
另外,至于ClientAliveCountMax, 使用默認(rèn)值3即可.ClientAliveCountMax表示服務(wù)器發(fā)出請求后客戶端沒有響應(yīng)的次數(shù)達(dá)到一定值, 就自動斷開. 正常情況下, 客戶端不會不響應(yīng).
 
 
3. 啟用putty keepalive
 

復(fù)制代碼
代碼如下:

putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默認(rèn)為0, 改為60.

 
4.SecureCRT設(shè)置反空閑
 
復(fù)制代碼
代碼如下:

option->session option->Terminal->Anti-idle->Send protocol NO-OP every__seconds

每隔幾秒發(fā)送空字符串 保持鏈接不斷開

標(biāo)簽:臨沂 撫州 烏蘭察布 防城港 韶關(guān) 北海 邢臺 南昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《連接Linux的服務(wù)器時使用SSH密鑰認(rèn)證及解決自動斷連問題》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266