ssh(secure shell)無密碼登入
要使用公鑰與私鑰。linux下可以用用ssh-keygen生成公鑰/私鑰對
,下面我以centos為例。
有機器a(192.168.1.155),b(192.168.1.181)。現想a通過ssh免密碼登入到b。
1. 在a機下生成公鑰/私鑰對
[chenlb@a ~]$ ssh-keygen -t rsa -p ''
直接ssh-keygen然後三次回車就可以了。
-p表示密碼,-p 『』 就表示空密碼,也可以不用-p引數,這樣就要三次回車,用-p就一次回車。
它在/home/chenlb下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
2. 把a機下的id_rsa.pub複製到b機下
在b機的.ssh/authorized_keys檔案裡,我用scp複製。(如果b機器沒有.ssh和authorized_keys檔案,則先建立這個資料夾和檔案)
[chenlb@a ~]$ scp .ssh/id_rsa.pub [email protected]:/home/chenlb/id_rsa.pub
[email protected]'s password:
id_rsa.pub 100% 223 0.2kb/s 00:00
由於還沒有免密碼登入的,所以要輸入密碼。
3. b機把從a機複製的id_rsa.pub新增到.ssh/authorzied_keys檔案裡
[chenlb@b ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[chenlb@b ~]$ chmod 600 .ssh/authorized_keys
authorized_keys的許可權要是600。
4. a機登入b機
[chenlb@a ~]$ ssh 192.168.1.181
the authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
rsa key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
are you sure you want to continue connecting (yes/no)? yes
warning: permanently added '192.168.1.181' (rsa) to the list of known hosts.
last login: thu jul 3 09:53:18 2008 from chenlb
[chenlb@b ~]$
第一次登入是時要你輸入yes。
現在a機可以無密碼登入b機了。
小結:登入的機子要有私鑰
,被登入的機子要有登入機子的公鑰
。這個公鑰/私鑰對
一般在私鑰宿主機產生
。上面是用rsa演算法的公鑰/私鑰對,當然也可以用dsa(對應的檔案是id_dsa,id_dsa.pub)
想讓a,b機無密碼互登入,那b機以上面同樣的方式配置即可。
ssh為建立在應用層和傳輸層基礎上的安全協議。ssh是目前較可靠,專為遠端登入會話
和其他網路服務
提供安全性的協議
。利用ssh 協議
可以有效防止
遠端管理過程中的資訊洩露問題
。
從客戶端
來看,ssh提供兩種級別
的安全驗證
:
1、基於口令
的驗證
只要知道帳號和口令
,就可以登入到遠端主機
。所有傳輸的資料都會被加密
,但缺點
是:不能保證
你正在連線的伺服器
就是你想連線的伺服器
。以下是我畫了的登入驗證流程:
當第一次鏈結遠端主機時,會提示您當前主機的」公鑰指紋
」,詢問您是否繼續
,如果選擇繼續後,就可以輸入密碼進行登入
了,當遠端的主機接受以後,該台伺服器的公鑰就會儲存到~/.ssh/known_hosts檔案中。
2、基於金鑰
的驗證
這種驗證的前提
是客戶端需要生成一對金鑰
,將公鑰放到需訪問的遠端伺服器
。這種驗證比上一種的好處是,不能仿冒真正的伺服器
,因為要仿冒必須拿到客戶端生成的公鑰
。缺點就是驗證等待過程稍長些
。
1、在客戶端開啟終端,執行ssh-keygen
,該命令會預設在~/.ssh/目錄下建立id_rsa
、id_rsa.pub
兩個檔案,分別為您的公鑰和私鑰
。
2、將公鑰id_rsa.pub檔案拷貝到伺服器端的~/.ssh/authorized_keys檔案中,有三種方法:
**,server a免登入到 server b:
1.在a上生成公鑰私鑰
。
2.將公鑰拷貝給server b
,要重新命名成authorized_keys
(從英文名就知道含義了)
3.server a向server b傳送乙個連線請求
。
4.server b得到server a的資訊後,在authorized_key中查詢,如果有相應的使用者名稱和ip
,則隨機生成乙個字串
,並用server a的公鑰加密
,傳送給server a
。
5.server a得到server b發來的訊息後
,使用私鑰進行解密
,然後將解密後的字串傳送給server b
。server b進行和生成的對比,如果一致
,則允許免登入
。
總之:a要免密碼登入到b,b首先要擁有a的公鑰
,然後b要做一次加密驗證
。對於非對稱加密,公鑰加密的密文不能公鑰解開,只能私鑰解開。
SSh 免密碼登陸
有機器a 192.168.1.155 b 192.168.1.181 現想 a通過ssh免密碼登入到b。操作步驟 進入主機a的 cmd介面 1 產生金鑰,命令如下 ssh keygen t rsa p 截圖如下 在輸入上面的命令後,它會在 users chenlb 下生產.ssh 目錄,ssh 下有...
ssh免密碼登陸
1 ubuntu為當前使用者產生ssh非對稱秘鑰的方法 ssh keygen t rsa t 指定rsa加密演算法產生一對秘鑰 id rsa id rsa.pub其中id rsa為私鑰,id rsa.pub為公鑰 2 ubuntu中免密碼登陸的重要檔案 authorized keys 如果一台伺服器...
SSH免密碼登陸
當我們要ssh遠端登陸到主機時是需要輸入使用者名稱和密碼的。如果不想這樣,就需要首先在自己使用者主目錄下的.ssh目錄下生成公鑰和私鑰。然後把自己的公鑰傳送給遠端主機的authorized keys 也是主目錄的.ssh資料夾下 檔案下。這樣遠端主機的authorized keys檔案下就有了你的使...