A為本地主機(jī)(即用于控制其他主機(jī)的機(jī)器) ;
B為遠(yuǎn)程主機(jī)(即被控制的機(jī)器Server), 假如ip為172.24.253.2 ;
在A上的命令:
ssh-keygen -t rsa
(連續(xù)三次回車,即在本地生成了公鑰和私鑰,不設(shè)置密碼,生成的公鑰私鑰在~/.ssh目錄下,id_rsa是私鑰, id_rsa.pub是公鑰 )
ssh a href="mailto:muye@172.24.253.2">muye@172.24.253.2/a>
mkdir .ssh
chmod 700 .ssh
(需要輸入密碼, 注:必須將.ssh的權(quán)限設(shè)為700)
scp ~/.ssh/id_rsa.pub a href="mailto:muye@172.24.253.2:~/.ssh">muye@172.24.253.2:~/.ssh/a>
然后在服務(wù)器上建立authorized_keys文件:
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
(注意: 必須將~/.ssh/authorized_keys的權(quán)限改為600, 該文件用于保存ssh客戶端生成的公鑰,可以修改服務(wù)器的ssh服務(wù)端配置文件/etc/ssh/sshd_config來換文件名,默認(rèn)是叫authorized_keys)
cat id_rsa.pub >> authorized_keys
# (將id_rsa.pub的內(nèi)容追加到 authorized_keys 中, 注意不要用 > ,否則會清空原有的內(nèi)容,使其他人無法使用原有的密鑰登錄)
回到A機(jī)器:
# ssh a href="mailto:muye@172.24.253.2">muye@172.24.253.2/a> (不需要密碼, 登錄成功)
從表面上簡單的理解一下登錄的過程,
首先 ssh-keygen -t rsa 命令生成了一個密鑰和一個公鑰, 而且密鑰可以設(shè)置自己的密碼
可以把密鑰理解成一把鑰匙, 公鑰理解成這把鑰匙對應(yīng)的鎖頭,
把鎖頭(公鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(密鑰)的人, 才能打開鎖頭, 進(jìn)入server并控制
而對于擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設(shè)置密碼), 這樣就可以防止鑰匙被了配了(私鑰被人復(fù)制)
更簡潔的方式:
步驟1、如果服務(wù)器上沒有authorized_keys文件,則:(如果有則跳過這一步)
ssh a href="mailto:muye@172.24.253.2">muye@172.24.253.2/a>
mkdir .ssh
chmod 700 .ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
步驟2、在本機(jī):
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub a href="mailto:muye@172.24.253.2">muye@172.24.253.2/a>
ssh-keygen -t rsa #之后三下回車,表示無密碼。即可。
注: ssh-copy-id 自動把密鑰追加到遠(yuǎn)程主機(jī)的 .ssh/authorized_key 上