SSH密鑰登陸(ssh-keygen)

總的來講SSH方式驗證有兩種:shell

1 用戶名密碼方式,很常見。問題在於(根據網上資料)你可能登陸的不是你想登陸的服務器,可能存在中間機器進行欺騙(我本身理解,例如使用域名登陸而域名被篡改,就可能登陸到另外的機器上。還有一種狀況就是堡壘機)。安全

2 密鑰登陸。服務器

「若是你要鏈接到ssh服務器,ssh客戶端會向ssh服務器發出請求,請求用你的密鑰進行安全驗證。ssh服務器在收到該請求以後,會先在ssh服務器上,檢查你登錄的用戶的主目錄下尋找對應的公鑰,而後把它和你發送過來的公鑰進行比較。若是兩個公鑰一致,ssh服務器就用公鑰加密「質詢」(challenge)並把它發送給ssh客戶端。ssh客戶端在收到「質詢」以後就能夠用你的私鑰解密該「質詢」,再把它發送給ssh服務器。」dom

 

下面介紹SSH密鑰登陸設置方法:ssh

兩臺服務器A和B,要實現B用無密碼方式登陸A。ide

1 在B機器上生成密鑰:工具

[wcadmin@BLPCGT002 ~]$ uname -a
Linux BLPCGT002.lenovo.com 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
[wcadmin@BLPCGT002 ~]$ pwd
/home/wcadmin
[wcadmin@BLPCGT002 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/wcadmin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/wcadmin/.ssh/id_rsa.
Your public key has been saved in /home/wcadmin/.ssh/id_rsa.pub.
The key fingerprint is:
04:d0:72:aa:1e:08:ab:40:59:61:4c:c7:dd:be:3c:d9 wcadmin@BLPCGT002.lenovo.com
The key's randomart image is:
+--[ RSA 2048]----+
|  o+++o .        |
|  .oo.oo .       |
|  o  +  o        |
|.o  .  . .       |
|oo .    S +      |
|+ o      = E     |
|o. .      .      |
|. .              |
|                 |
+-----------------+
[wcadmin@BLPCGT002 ~]$ ll .ssh
total 12
-rw------- 1 wcadmin wcgrp 1675 Dec 21 09:56 id_rsa
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 09:56 id_rsa.pub
-rw-r--r-- 1 wcadmin users 2365 Dec 20 17:54 known_hosts
[wcadmin@BLPCGT002 ~]$

2 在A機器上配置。加密

將B機器上~/.ssh/id_rsa.pub文件上傳到A中,並將其內容放入在A中~/.ssh/中。以下:.net

wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->scp wcadmin@10.99.200.46:/home/wcadmin/.ssh/id_rsa.pub id_rsa_10.99.200.46.pub
The authenticity of host '10.99.200.46 (10.99.200.46)' can't be established.
RSA key fingerprint is 78:73:74:20:e9:78:5b:27:68:be:c1:f4:71:a6:44:b6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.99.200.46' (RSA) to the list of known hosts.
wcadmin@10.99.200.46's password: 
id_rsa.pub                                                                                                                 100%  410     0.4KB/s   00:00    
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->ll
total 8
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 10:00 id_rsa_10.99.200.46.pub
-rw-r--r-- 1 wcadmin wcgrp 1968 Dec 21 10:00 known_hosts
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->cat id_rsa_10.99.200.46.pub  > authorized_keys
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->ll
total 12
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 10:00 authorized_keys
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 10:00 id_rsa_10.99.200.46.pub
-rw-r--r-- 1 wcadmin wcgrp 1968 Dec 21 10:00 known_hosts
wcadmin@BJLTPGPLM1001T.lenovo.com-/home/wcadmin/.ssh->rm id_rsa_10.99.200.46.pub

上面是最簡單的方法。code

 

下面進行一些說明。

1 B中密鑰文件id_rsa必須保證訪問權限爲600,不然登陸仍是會提示輸入密碼。

[wcadmin@BLPCGT002 .ssh]$ pwd
/home/wcadmin/.ssh
[wcadmin@BLPCGT002 .ssh]$ ll
total 12
-rw------- 1 wcadmin wcgrp 1675 Dec 21 09:56 id_rsa
-rw-r--r-- 1 wcadmin wcgrp  410 Dec 21 09:56 id_rsa.pub
-rw-r--r-- 1 wcadmin users 2365 Dec 20 17:54 known_hosts
[wcadmin@BLPCGT002 .ssh]$

2 ssh-keygen默認加密方式爲rsa,能夠經過文件名或者查看文件內容得知。

[wcadmin@BLPCGT002 .ssh]$ more id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw75ZqWFoMU66VUYB7IJmGKT2x5iVyujcK1B99LyBXNgQ1BFdElw6zEG8Gb+95T3Q35P8QVVG6yGe9vpIJ6fFuvePgK6Ssd4GfG41Jpwc3Yiics0mR7ENijyaE
1gIwIxwxfn/BNjymXS8lA8yhRdYpg68H+jh2E/qGlJ/wrYFSfunrWp5LtJHrnNDHbfjGKZn2ZhMZsrTkj2WdZjhB9QlxC64SJpCTcAFXW0MutvZkm7XXg0IBCoYLkbLYkMGlO7moU4BwfBNVAFv4mJaMurzNA
kr2JuVcPXHqfGklGEzQm+L/AZpo3QZEuuyoC/nI+VmMnFZdswZ4gbIhgroiYfmxw== wcadmin@BLPCGT002.lenovo.com
[wcadmin@BLPCGT002 .ssh]$

如上,ssh-rsa開頭。

另外ssh-keygen能夠指定加密方式,例如ssh-keygen -t dsa。

還有其餘參數好比密鑰長度,能夠參考幫助。

 

3 ssh-keygen生成密鑰時,能夠設置私鑰加密,可是通常咱們都不設置。

4 在window下也能夠設置,例如使用xshell等工具設置。

 

這裏有比較詳細的說明:https://my.oschina.net/lanni654321/blog/414523

相關文章
相關標籤/搜索