SSH免密登入配置ssh copy id

2021-10-24 11:18:23 字數 3227 閱讀 4361

a、b兩台linux終端,其中需要a通過ssh遠端登入b時,能夠免密碼直接通過使用者名稱進行登入的配置

1、什麼是公私鑰 總結

原理(1)客戶機向遠端主機傳送登入請求,並且把自己的公鑰傳送給遠端主機。

(2)遠端主機收到使用者的登入請求,首先判斷對應的使用者主目錄下是否存在.ssh/authorized_keys並且這個檔案中有沒有有客戶機的公鑰時;

如果條件不成立,就會使用賬戶口令登入登入的方式,同時向客戶機返回

如果條件成立,則會使用公私鑰登入的方式,同時向客戶機返回

賬戶口令登入登入的方式:(每次都需要輸入密碼,不能免金鑰登入)

(3)使用者使用這個公鑰,將登入密碼加密後,傳送回來。

(4)遠端主機用自己的私鑰,解密登入密碼,如果密碼正確,就同意使用者登入。

基於公私鑰登入的方式:(可以實現 免金鑰登入)

能用到這種方式的前提是,使用者已經將自己的公鑰儲存在遠端主機上,這個是重點,也就是所謂的「公金鑰分發」。

(3)使用者用自己的私鑰解密「隨機資訊」後,接著用「私鑰」加密簽名該「隨機資訊」,最後再用遠端主機的公鑰加密傳送給遠端主機。

(4)遠端主機先用自己的私鑰解密,然後在用事先儲存的客戶機公鑰進行解密認證,得出「隨機資訊」,如果「隨機資訊」正確,就證明使用者是可信的,直接允許登入shell,不再要求密碼。

ssh-copy-id命令可以把本地的ssh公鑰檔案安裝到遠端主機對應的賬戶下。

達到的功能:

ssh-copy-id - 將你的公共金鑰填充到乙個遠端機器上的authorized_keys檔案中。

使用模式:

ssh-copy-id [-i [identity_file]] [user@]machine
描述:

ssh-copy-id 是乙個實用ssh去登陸到遠端伺服器的指令碼(假設使用乙個登陸密碼, 因此,密碼認證應該被啟用直到你已經清理了做了多個身份的使用)。它也能夠改變遠端使用者名稱的許可權,/.ssh和/.ssh/authorized_keys刪除群組寫的許可權(在其它方面,如果遠端機上的sshd在它的配置檔案中是嚴格模式的話,這能夠阻止你登陸。)。

如果這個 「-i」選項已經給出了,然後這個認證檔案(預設是~/.ssh/id_rsa.pub)被使用,不管在你的ssh-agent那裡是否有任何金鑰。

另外,命令 「ssh-add -l」 提供任何輸出,它使用這個輸出優先於身份認證檔案。如果給出了引數「-i」選項,或者ssh-add不產生輸出,然後它使用身份認證檔案的內容。一旦它有乙個或者多個指紋,它使用ssh將這些指紋填充到遠端機~/.ssh/authorized_keys檔案中。

# 臨時關閉 

systemctl stop iptables

service iptables stop

# 永久關閉

systemctl disable iptables

chkconfig iptables off

# 臨時關閉

systemctl stop firewalld.service // 停止firewall

# 永久關閉

systemctl disable firewalld.service // 禁止firewall開啟啟動

firewall-cmd --state // 檢視firewall狀態

安全增強型 linux(security-enhanced linux)簡稱 selinux,它是乙個 linux 核心模組,也是 linux 的乙個安全子系統。

主要作用就是最大限度地減小系統中服務程序可訪問的資源(最小許可權原則)。

# 臨時關閉(0為關閉,1為開啟)

setenforce 0

# 永久關閉

修改 /etc/selinux/config 檔案

將 selinux=enforcing 修改為 disabled

重啟生效

# 檢視狀態

getenforce

/usr/sbin/sestatus -v

如果使用root帳號進行遠端登入,需要授權 root 允許遠端登入的許可權

# 修改 /etc/ssh/sshd_config 

permitrootlogin yes //允許root登入

permitemptypasswords yes //允許不輸入密碼登入

# 重啟 sshd 服務生效

systemctl restart sshd

# 編輯 /etc/ssh/sshd_config 檔案,去掉下面幾行的注釋 '#'

rsaauthentication yes

pubkeyauthentication yes

authorizedkeysfile .ssh/authorized_keys

# 重啟 sshd 服務

systemctl restart sshd

service sshd restart

# 執行命令,三次預設回車

ssh-keygen -t rsa

# 生成兩個檔案

id_rsa: 私鑰

id_rsa.pub:公鑰

方法一:建立檔案並進行拷貝,將公鑰匯入到另一台終端的認證檔案中

cat id_rsa.pub >> ~/.ssh/authorized_keys
設定檔案訪問許可權

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

方法二:在本機通過ssh-copy-id命令直接將公鑰分配給目標終端

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

# 可簡寫

ssh-copy-id // 其中在 /etc/hosts中 配置,使用者預設為本機執行使用者

SSH 免密登入配置

有兩種方式 私鑰登入和公鑰登入 私鑰登入 1 在主機a上生成秘鑰對 ssh keygen t rsa c 注釋文字 將生成的秘鑰對中的私鑰id rsa 複製到將要登入a機器的主機檔案中一班使用字尾.pem,例如 cat id rsa my.pem 2 將上述私鑰檔案交給授權登入的主機,注意,私鑰很重...

SSH免密登入配置

進入到hadoop使用者家目錄 cd 檢視當前目錄.ssh 隱藏檔案 ls al 進入ssh cd ssh 執行命令生成私鑰id rsa 公鑰 id rsa.pub ssh keygen t rsa 將公鑰內容放入hadoop1的authorized keys 檔案 ssh copy id hado...

SSH 免密登入配置

當你剛擁有乙個伺服器後,首先需要登入伺服器。本節主要聊一聊伺服器ssh登入配置。ssh p port root 12.234.567.789 p port 監聽的埠,如果不指定預設值為 22 vim ssh config 修改 ssh 配置檔案 ssh config host beijing hos...