互信 ssh

2018-09-26oracle

參考網址:https://blog.csdn.net/zwjzqqb/article/details/78950658ssh

1. 簡單解釋

ssh服務能夠生成公私鑰,公私鑰的類型有兩種:rsa和dsa,做用是使用私鑰免輸入密碼登陸到公鑰所在的主機的用戶,這就是ssh的是要免密登陸。
ssh互信是指多個用戶之間相互配置免密登陸,能夠是本身配置免密登陸本身,作互信用的公私鑰能夠是多套也能夠是一套。 測試

2. 相關目錄和權限說明

每個用戶的ssh公私鑰所在的目錄,在當前用戶家目錄的.ssh目錄下。若是該用戶歷來沒有使用過ssh命令鏈接到任何主機,此時~/.ssh目錄是不存在的。不建議手動建立,使用一次ssh命令鏈接本身便可建立出來  $ ssh 127.0.0.1 The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. RSA key fingerprint is 02:da:60:ad:4f:3e:d2:6b:33:b3:9a:27:d5:e3:80:e7. Are you sure you want to continue connecting (yes/no)? # 顯示以上信息時.ssh目錄已經建立了,此時直接ctrl+c結束掉便可 # 也能夠輸入yes回車,而後輸入密碼進行ssh登陸,以用戶本身登錄到主機的迴環地址下的用戶本身  $ cd ~/.ssh # 上一步ctrl+c結束掉,此時該目錄爲空 # 若是上一步沒有ctrl+c結束掉,正常登陸後該目錄會有一個叫作 known_hosts 文件
# 記錄已經鏈接過的主機信息 $ ssh 127.0.0.1 The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. RSA key fingerprint is 02:da:60:ad:4f:3e:d2:6b:33:b3:9a:27:d5:e3:80:e7. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts. # 這一句警告就是說將 127.0.0.1 (RSA)信息添加到已知的主機信息中,即known_hosts文件中 vincent@127.0.0.1's password: exit $ ssh -o StrictHostKeyChecking=no localhost Warning: Permanently added 'localhost' (RSA) to the list of known hosts. vincent@localhost's password: Last login: Tue Jan 2 12:32:28 2018 from 127.0.0.1 exit # 若是不想在第一次鏈接到某主機某的用戶時交互的輸入yes(即known_hosts文件中沒有該主機的該用戶的信息) # 可使用 -o StrictHostKeyChecking=no 參數默認自動添加未知主機到known_hosts文件中 # 這是一個很是技巧性的參數 # 生成rsa的公私鑰 ssh-keygen -t rsa # 輸入該命令敲回車以後,還須要連續敲三次回車,固然每次回車以前是能夠輸入一些信息的 # 好比第一次是指定生成的公私鑰文件名,通常建議默認,第二次和第三次是輸入密碼和確認密碼 ls -l # -rw------- 1 vincent vincent 1675 Jan 2 12:45 id_rsa # -rw-r--r-- 1 vincent vincent 397 Jan 2 12:45 id_rsa.pub # 文件id_rsa就是默認生成的私鑰文件,權限只能是600,若是不是這個權限,則會出問題 # 文件id_rsa.pub是默認生成的公鑰文件,權限是644 # 理論上講只要某臺機器的某個用戶上有剛纔生成的公鑰文件,那麼用私鑰文件就可以免密碼登陸到該機器 # 公鑰像鎖,私鑰像該鎖的鑰匙,把公鑰放到某主機的某用戶下,至關於在某用戶的門上安裝了一把本身有鑰匙的鎖 # 本身拿着鑰匙就能開鎖進門了 # 可是公鑰可能有不少個,好比多個用戶都要免密碼登陸到一個主機的某個用戶下 # 所以公鑰文件不能直接使用,而要生成另一個文件存放全部公鑰用於免密登陸 cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys ssh 127.0.0.1 date # 該文件的權限只能是600,不然也是沒法免密登陸的 # ssh IP CMD 是指ssh到主機後執行命令CMD,而後退出主機 # 以上配置authorized_keys文件是手工配置,是有正規的命令自動配置的 ssh-copy-id user@127.0.0.1 # vincent@127.0.0.1's password: # Now try logging into the machine, with "ssh '127.0.0.1'", and check in: # .ssh/authorized_keys # to make sure we haven't added extra keys that you weren't expecting. # 推薦該操做 # 使用 ssh-copy-id 命令,會在authorized_keys不斷追加公鑰信息 # 生成dsa的公私鑰 ssh-keygen -t dsa # 操做上只有這一個區別 # 通常只生成rsa的公私鑰便可
# #
#

3. 場景一:某用戶本身免密登陸本身

# 環境清理: rm -rf ~/.ssh # 正式開始設置: mkdir ~/.ssh chmod 700 ~/.ssh ssh-keygen -t rsa ssh-keygen -t dsa cd ~/.ssh cat *.pub >> authorized_keys # 由於生成了rsa和dsa的密鑰,所以須要將兩個公鑰文件內容寫入authorized_keys文件 chmod 600 authorized_keys ssh -o StrictHostKeyChecking=no 127.0.0.1 date ssh -o StrictHostKeyChecking=no localhost date ssh -o StrictHostKeyChecking=no $(hostname) date ssh -o StrictHostKeyChecking=no $(hostname -i) date # 以上四條命令是指鏈接到迴環地址,迴環地址主機名,主機名,主機名對外IP地址 # 這四條命令是必需要執行的,由於通常或者某些第三方程序測試互信的時候不會使用參數 -o StrictHostKeyChecking=no 的 # 此時known_hosts沒有相關信息,須要手動輸入yes,或者測試互信就直接失敗掉了 # 好比oracle的10gRAC搭建過程當中測試互信的時候就會發生該類問題,致使互信檢測失敗
相關文章
相關標籤/搜索