linux ssh rsa免輸入密碼

2022-04-10 10:38:56 字數 1600 閱讀 8079

a為本地主機(即用於控制其他主機的機器) ;

b為遠端主機(即被控制的機器server), 假如ip為172.24.253.2 ;

在a上的命令:

ssh-keygen -t rsa

(連續三次回車,即在本地生成了公鑰和私鑰,不設定密碼,生成的公鑰私鑰在~/.ssh目錄下,id_rsa是私鑰, id_rsa.pub是公鑰 )

ssh [email protected]

mkdir .ssh

chmod

700 .ssh

(需要輸入密碼, 注:必須將.ssh的許可權設為700)

scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh

然後在伺服器上建立authorized_keys檔案:

touch ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

(注意: 必須將~/.ssh/authorized_keys的許可權改為600, 該檔案用於儲存ssh客戶端生成的公鑰,可以修改伺服器的ssh服務端配置檔案/etc/ssh/sshd_config來換檔名,預設是叫authorized_keys)

cat id_rsa.pub  >> authorized_keys

# (將id_rsa.pub的內容追加到 authorized_keys 中, 注意不要用 > ,否則會清空原有的內容,使其他人無法使用原有的金鑰登入)

回到a機器:

# ssh [email protected] (不需要密碼, 登入成功)

從表面上簡單的理解一下登入的過程,

首先 ssh-keygen -t rsa 命令生成了乙個金鑰和乙個公鑰, 而且金鑰可以設定自己的密碼

可以把金鑰理解成一把鑰匙, 公鑰理解成這把鑰匙對應的鎖頭,

把鎖頭(公鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(金鑰)的人, 才能開啟鎖頭, 進入server並控制

而對於擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設定密碼), 這樣就可以防止鑰匙被了配了(私鑰被人複製)

更簡潔的方式:

步驟1、如果伺服器上沒有authorized_keys檔案,則:(如果有則跳過這一步)
ssh [email protected]

mkdir .ssh

chmod

700 .ssh

touch ~/.ssh/authorized_keys

chmod

600 ~/.ssh/authorized_keys

步驟2、在本機:

ssh-keygen -t rsa 

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

ssh-keygen -t rsa之後三下回車,表示無密碼。即可。(注: ssh-copy-id 自動把金鑰追加到遠端主機的 .ssh/authorized_key 上)

解決php呼叫shell sudo輸入免密碼的問題

問題背景 想在oj上加乙個重啟判題服務的按鈕呼叫shell而已 1.使用su root進入root賬戶 修改 etc sudoers許可權 777 sudo all all all all改為 sudo all all all nopasswd all 表示組 即sudo組的都可以免密碼使用sudo...

vscode遠端開發免密輸入設定

其中,t rsa表示生成金鑰型別為rsa,b表示生成多少位的金鑰,如果不設定的話,預設生成的rsa金鑰長度為2048。金鑰生成路徑預設是c users ssh 其中私鑰檔案為id rsa,公鑰檔案為id rsa.pub。一般預設回車即可。id rsa.pub上傳到伺服器的 ssh 目錄。如果 ssh...

centos ssh免密登入 多台互相免密登入

假定操作的機器為crawl01,需要免密登入的機器為crawl02,crawl03.在crawl01上做如下操作 假定使用者crawl登入的crawl01,其它機器的登陸使用者也是crawl 1.生成金鑰 1 進入到 home crawl ssh目錄下 沒有.ssh則新建 2 輸入ssh keyge...