linux中ssh使用rsa免密碼登入方法

水墨風光發表於2016-06-19

A為本地主機(即用於控制其他主機的機器) ;
B為遠端主機(即被控制的機器Server), 假如ip為172.24.253.2 ;
 
在A上的命令:

程式碼如下:
ssh-keygen -t rsa


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


ssh muye@172.24.253.2
mkdir .ssh
chmod 700 .ssh 

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


程式碼如下:

scp ~/.ssh/id_rsa.pub muye@172.24.253.2:~/.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 muye@172.24.253.2 (不需要密碼, 登入成功)
 
從表面上簡單的理解一下登入的過程,
首先 ssh-keygen -t rsa 命令生成了一個金鑰和一個公鑰, 而且金鑰可以設定自己的密碼
可以把金鑰理解成一把鑰匙, 公鑰理解成這把鑰匙對應的鎖頭,
把鎖頭(公鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(金鑰)的人, 才能開啟鎖頭, 進入server並控制
而對於擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設定密碼), 這樣就可以防止鑰匙被了配了(私鑰被人複製)
 
更簡潔的方式:
步驟1、如果伺服器上沒有authorized_keys檔案,則:(如果有則跳過這一步)

程式碼如下:


ssh muye@172.24.253.2 
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 muye@172.24.253.2


注: ssh-copy-id 自動把金鑰追加到遠端主機的 .ssh/authorized_key 上



from:http://www.jb51.net/LINUXjishu/159479.html

相關文章