1. 程式人生 > >SSH通訊和免密碼登陸設定

SSH通訊和免密碼登陸設定

1.SSH原理
SSH 為 Secure Shell 的縮寫,安全Shell網路協議,用於計算機之間的加密登入,早期的計算機之間採用明文通訊,通訊訊號被截獲以後,內容即被截獲一方掌握。1995年,芬蘭學者Tatu Ylonen設計了SSH協議對登陸資訊進行加密,稱為網際網路安全的標準解決方案。
SSH作為一種協議,有多重實現方案。目前Ubuntu的desktop系統會預設安裝OpenSSH的client端,在Windows系統中,可通過開源軟體PuTTY實現SSH通訊。

2.SSH安裝
參考我的BLOG:http://blog.csdn.net/ezhchai/article/details/52972064


在安裝好Ubuntu的Desktop系統後,執行dpkg -l | grep ssh 進行查詢,
可以看到系統預設只安裝了openssh-client,沒有server端。建議安裝Server端,尤其是接受其他Client端登陸的裝置,安裝命令為:

sudo apt-get install openssh-server

3.SSH登陸
SSH主要用於遠端登入。假定你要以使用者名稱user,登入遠端主機host,只要一條命令即可。可通過-p引數設定埠號(22是預設埠)。
ssh -p 22 [email protected]
在沒有設定免密碼登陸時,需要通過密碼登陸。
如果你是第一次登入對方主機,系統會出現下面的提示:

$ ssh [email protected]
The authenticity of host 'host (12.18.429.21)' can't be established.
RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.
Are you sure you want to continue connecting (yes/no)?

提示無法確認host主機的真實性,只知道它的公鑰指紋,還想繼續連線嗎?
所謂”公鑰指紋”,是指對公鑰(RSA演算法公鑰長度1024位)進行MD5計算,轉換成128位的指紋,即
98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d

,容易進行比較。由於使用者無法知道遠端主機的公鑰指紋,需要主機主動提供,才能進行必比對。
經過風險衡量以後,使用者決定接受這個遠端主機的公鑰,則需輸入yes。

Are you sure you want to continue connecting (yes/no)? yes

系統會出現一句提示,表示host主機已經得到認可。

Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts.

提示輸入密碼。

Password: (enter password)

如果密碼正確,就可以登入了。
當遠端主機的公鑰被接受以後,會在檔案$HOME/.ssh/known_hosts中儲存。下次再連線這臺主機,系統認出公鑰已經儲存在本地,跳過警告部分,直接提示輸入密碼。
每個SSH使用者都有自己的known_hosts檔案,系統在/etc/ssh/ssh_known_hosts,儲存一些對所有使用者都可信賴的遠端主機公鑰。

4.建立SSH key
如果經常輸入密碼會顯得比較麻煩,可以通過讓主機記錄公鑰來實現免密碼登陸。這裡首先要建立公鑰。
命令為:ssh-keygen -t [rsa|dsa] –C [Comments]
-t = The type of the key to generate
金鑰的型別,加密方式選 rsa|dsa均可以,預設dsa
-C = comment to identify the key
用於識別這個金鑰的註釋
命令例項為:

$ ssh-keygen -t rsa  
Generating public/private rsa key pair.  
Enter file in which to save the key (/home/ezhchai/.ssh/id_rsa):   
Created directory '/home/ezhchai/.ssh'.  
Enter passphrase (empty for no passphrase):   
Enter same passphrase again:   
Your identification has been saved in /home/ezhchai/.ssh/id_rsa.  
Your public key has been saved in /home/ezhchai/.ssh/id_rsa.pub.  
The key fingerprint is:  
39:f2:fc:70:ef:e9:bd:05:40:6e:64:b0:99:56:6e:01 [email protected]  
The key's randomart image is:  
+--[ RSA 2048]----+  
|          Eo*    |  
|           @ .   |  
|          = *    |  
|         o o .   |  
|      . S     .  |  
|       + .     . |  
|        + .     .|  
|         + . o . |  
|          .o= o. |  
+-----------------+  

進入“.ssh”會生成以下幾個檔案
authorized_keys:存放遠端免密登入公鑰,通過該檔案記錄多臺機器的公鑰;
  id_rsa:生成的私鑰檔案
  id_rsa.pub:生成的公鑰檔案
  know_hosts:已知的主機公鑰清單
如果希望ssh公鑰生效需滿足至少下面兩個條件:
ssh目錄的許可權必須是700
ssh/authorized_keys檔案許可權必須是600

5.拷貝公鑰到遠端主機
命令:ssh-copy-id -i ~/.ssh/id_rsa.pub <romte_ip>
-i引數可採用預設項。

$ ssh-copy-id [email protected]192.168.10.113  
The authenticity of host '192.168.10.113 (192.168.10.113)' can't be established.  
RSA key fingerprint is f0:1c:05:40:d3:71:31:61:b6:ad:7c:c2:f0:85:3c:cf.  
Are you sure you want to continue connecting (yes/no)? yes  
Warning: Permanently added '10.124.84.20' (RSA) to the list of known hosts.  
[email protected]192.168.10.113's password:   
Now try logging into the machine, with "ssh ' [email protected]'", and check in:  

  .ssh/authorized_keys  

to make sure we haven't added extra keys that you weren't expecting.

這樣,再通過ssh命令,即可免密碼實現主機登陸了。

相關推薦

SSH通訊密碼登陸設定

1.SSH原理 SSH 為 Secure Shell 的縮寫,安全Shell網路協議,用於計算機之間的加密登入,早期的計算機之間採用明文通訊,通訊訊號被截獲以後,內容即被截獲一方掌握。1995年,芬蘭學者Tatu Ylonen設計了SSH協議對登陸資訊進行加密

ssh 密碼登陸設定不成功

記一次centos6設定免密碼登陸設定不成功的解決。自己挖的坑自己填。 ssh 免密碼登陸設定( 正常情況下是這樣的,設定成功後登陸主機是不需要密碼的) [[email protected] .ssh]# ssh-keygen -t rsa # 執行上面的命令直接敲3-4次回車。 Gener

sshssh2之間的密碼登陸詳解

SSH為Secure Shell的縮寫,由IETF的網路工作小組(Network Working Group)所制定;SSH為建立在應用層和傳輸層基礎上的安全協議。在維基百科上,有關於SSH的詳細詞條,但通俗點說,SSH能夠讓一個客戶端安全的登入上一個伺服器上進行管理操作。所以,忘掉FTP、POP和Tel

Jenkins進階系列之——09配置Linux系統ssh密碼登陸

dom pub tar finger cnblogs pan 改變 art home ssh認證的完整描述:https://www.ibm.com/developerworks/cn/linux/security/openssh/part1/ 說明:點我去查看 今天我們只說

ssh 密碼登陸

密碼 有時 刪除 內容 需要 機器 文檔 authorize 利用 服務器被登陸的時候,需要用戶提供它的密碼。 ssh [email protected]/* */ 有時人們會覺得輸入密碼比較麻煩。有時服務器是不想讓人直接登陸,但是又必須允許部分人登

配置ssh密碼登陸

grep 本機 author ins 配置ssh 數據同步 輸入 如果 id_rsa 以root賬戶為例 準備兩臺以上的Linux服務器,我這裏用的是s204,s205兩臺機器,多臺同樣的 先使用ssh登錄試一下,如果沒有安裝則需要先安裝一下 ssh s205會提示你輸

Mac客戶端CentOS服務器 SSH密碼登陸

rsa 使用 直接 oot root 下使用 bsp 密碼 cat 假定有2個服務器A(127.0.0.1)和B(192.168.0.1),A作為客戶端來登錄服務器B 1.在服務器A下使用 ssh-keygen -t ras -P ‘  會在~/.ssh目錄下‘生成公鑰(

Centos7 ssh密碼登陸

gpo id_rsa ssh免密 evel 密鑰登陸 post pan png ssh-key 摘要:安裝openssl openssl-devel 不過有些centos自帶 192.168.161.5 192.168.161.15 本版本用centos7 (192.16

Linux上實現ssh密碼登陸遠程服務器

Linux上實現ssh免密碼登陸遠程服務平常使用ssh登陸遠程服務器時,都需要使用輸入密碼,希望可以實現通過密鑰登陸而免除輸入密碼,從而可以為以後實現批量自動部署主機做好準備。 環境如下: IP地址 操作系統 服務器端 10.0.0.10 CentOS 6.5 x86 客戶端 10.0.0

ssh密碼登陸設置時bad ownership or modes for file 報錯的解決辦法

linux ssh問題:密鑰登陸時報如下錯誤:May 13 10:11:26 keep sshd[25103]: Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys 原因:sshd為了安全

centos ssh密碼登陸突然

終端輸入:tail /var/log/secure -n 20 發現有下面這樣一句話: Oct 16 19:52:03 master sshd[4463]: Authentication refused: bad ownership or modes for directory /roo

阿里雲3臺機器組成叢集配置ssh密碼登陸

1 查詢阿里雲局網ip 注意:需要配置同一地區同一可用區的機器 才是一個局網 2 配置好hosts檔案 3 hostname確認也是正確的 4 生成公鑰私鑰 三臺機器同樣操作  ssh-keygen -t rsa     然後一路回車 &n

SSH密碼登入設定

  兩臺Linux主機需要從其中一臺ssh至另外一臺需要手動輸入密碼,通過以下設定免密碼登入   生成祕鑰 ssh-keygen -t rsa   把祕鑰複製至需要免密登入的主機,第一次拷貝需要輸入一次密碼 ssh-copy-id -i ~/.ssh/id_rsa.pub [emai

Linux密碼登入設定 ssh-keygen

linux系統配置免密碼的方式: 1:ssh-keygen -t rsa 生成金鑰 [[email protected] ~]# ssh-keygen -t  rsa Generating public/private rsa key pair.

ubuntu16.04叢集之間配置SSH密碼登陸與原理詳解

環境 vmware14.1虛擬機器中三臺ubuntu16.04 ip地址對映關係:如下 127.0.0.1 localhost 192.168.184.131 vm-01 192.168.184.132 vm-02 192.168.184.133

使用expect實現ssh密碼登陸

使用expect向ip列表檔案中的ip主機,執行ssh-copy-id命令複製金鑰,以實現ssh免密登陸。 安裝expect yum install -y expect 生成金鑰對 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 指令碼 //shell指令碼內容

SSH登陸設定

ssh免密碼輸入        命令: ssh-keygen -t rsa     回車回車回車...       檢視鑰匙鏈 先 cd /root/.ssh

大資料叢集環境ssh密碼登入設定

一、準備工作 用客戶端工具(xshell或者ssh等等)連線到linux伺服器。在root使用者下輸入命令: vi /etc/hosts,用vi編輯hosts檔案,如下: 127.0.0.1 localhost localhost.localdomain localhost4 localhos

ssh localhost 密碼登陸(圖解)

每次搞ssh locahost無密碼登陸都要查半天,這次記錄一下,以備不時之需 假設系統中有使用者test,屬於使用者組test, 1 首先確認能否不輸入口令就用ssh登入localhost: $ ssh localhost 輸出如下所示: 2

配置ssh密碼登入設定後還是提示需要輸入密碼

       工作之餘搭建了一個叢集測試,配置了ssh免密碼登入以後  ,所有的ssh-copy-id 金鑰也都分發了 ,各項配置也沒有問題,但是使用ssh進行免密登入時,沒有報錯,但是要輸入被ssh主機的登入密碼,跟沒有配置的效果一樣。       分析了一下,問題出現在建