linux系統之間基於金鑰對免輸入密碼登陸

2022-05-08 06:54:12 字數 1263 閱讀 4513

通常,我們登陸到一台linux主機是需要輸入密碼,這樣可以驗證登陸者的身份。

這篇隨筆裡面我打算記錄一下配置基於ssh金鑰對登陸系統。在配置之前先和大家說明一下我遇到過的問題:剛接觸到linux時候首先有了家目錄的概念,為了使用,所以將/path/html許可權改為777並改作為使用者的家目錄,這樣每次登陸進系統時就直接到**根目錄下進行操作了,方便至極..........之前我的膝上型電腦是windows作業系統,用xshell連線伺服器可以儲存密碼所以也一直用的很爽。直到我電腦換了linux作業系統,直接起終端ssh連線遠端伺服器。但是在配置ssh登陸時出現了問題。一切配置操作都是正常的,但是始終要輸入密碼。。。。無奈只能將使用者家目錄改到/home/username,定義切換路徑的命令別名(/home/username/.bashrc 新增 alias chtml='cd /path/html' 這樣在我使用username登陸後使用cthml命令就可以直接切換到/path/html目錄).

具體配置ssh金鑰對登陸的操作:

1.在本機生成金鑰對,可直接用命令ssh-keygen(前提是系統安裝了ssh,沒有安裝的話debian sudo  apt-get install ssh,centos yum install ),由於我電腦有密碼,金鑰對就沒有再設定密碼,一路敲回車。這個命令會在使用者家目錄的.ssh/生成兩個檔案,id_rsa和id_rsa.pub,其中id_rsa是我們的私鑰,id_rsa_pub為公鑰。

2.將公鑰新增至伺服器,可以直接使用命令:ssh-copy-id -i ~/.ssh/id_rsa.pub username@server,之後輸入username的密碼即可。

tip:在網路上搜尋到很多部落格都是這樣操作第二步:

scp id.rsa.pub username@server

ssh username@server

登陸到伺服器後:cat id.rsa.pub >> ~/.ssh/authorized_keys 

sudo server ssh restart

感覺這樣有點麻煩,可以乙個命令完成的事情為什麼非要做的複雜呢?

只需要簡單的兩步即可配置完成,很簡單。這樣我們就可以直接連線, ssh username@server

關於更改完家目錄後無法給予ssh金鑰對登陸的問題暫時還沒有找到原因,之後明白了會寫部落格記錄。我檢視了/etc/ssh/sshd_config 中的設定,自動登陸的公鑰是這樣寫的 authorizedkeysfile      %h/.ssh/authorized_keys ,如果沒猜錯的話可能是更改完使用者家目錄後尋找這個檔案出現了問題,,但是該如何解決呢?

Linux系統之間免密登入

首先解釋一下公鑰和私鑰 在網上看到的,覺得不錯,可以讓更多人更容易理解,在此表示感謝 乙個很形象的比喻,就是公鑰是鎖頭,私鑰是鑰匙,你要無金鑰登入到某台機器上,必須拿著你的私鑰開啟相應的鎖頭 因此如果某台機器允許許多人開啟的話,就會存有這許多人的公鑰 以ubuntu為例,在每台機器上安裝ssh之後 ...

linux免金鑰登入設定

linux機器之間ssh免金鑰登入設定 ssh免金鑰登入 私鑰 金鑰留在本機 公鑰 金鑰發給其他機 bigdata01 生成金鑰 ssh keygen t rsa 金鑰存放路徑 root ssh id rsa 私鑰 id rsa.pub公鑰 傳送私鑰 本機 ssh copy id localhost...

Linux設定ssh免金鑰登入

設定ubuntu的root使用者ssh登入 開啟 etc ssh sshd conf,設定permitrootlogin yes 確認系統已經安裝了ssh。rpm qa grep openssh rpm qa grep rsync 出現如下圖的資訊表示已安裝 假設沒有安裝ssh和rsync,可以通過...