兩臺主機之間經過密鑰實現免密碼登陸
sshd認證方式:
1.基於口令的認證;
2.基於密鑰的認證;公鑰認證,把密鑰放在用戶家目錄下的.ssh目錄下
客戶端:
# ssh-keygen -t rsa 生成rsa密鑰
-t type
Specifies the type of key to create.
默認密鑰在家目錄.ssh目錄下爲id_rsa私鑰,id_rsa.pub公鑰
-f /path/to/somefile: 密鑰文件保存位置,生成屢次的話,能夠指定其餘名字
-P ‘’:指定oldpassword
Provides the (old) passphrase.
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub username@hostIP
<==> 若是沒有ssh-copy-id,則經過以下方法
# ls -ld .ssh/ 注意權限
drwx------ 2 root root 4096 Jun 21 11:12 .ssh/
ssh username@hostIP 'umask 0077;mkdir /root/.ssh' 服務器端沒有.ssh目錄則建立
scp .ssh/id_rsa.pub username@hostIP:/root/.ssh/authorized_keysshell
完整過程描述
基於密鑰方式遠程登陸過程:
1.在客戶端生成密鑰對
#ssh-keygen -t rsa
2.把公鑰複製到服務器端
#ssh-copy-id -i .ssh/id_rsa.pub username@hostIP
等價方法
# ls -ld .ssh/ 注意權限
drwx------ 2 root root 4096 Jun 21 11:12 .ssh/
# ssh username@hostIP ‘umask 0077; mkdir /root/.ssh’
# scp .ssh/id_rsa.pub username@hostIP:/root/.ssh/authorized_keys
3.客戶端登陸時
# ssh username@hostIP
能夠不用輸入密碼了
所謂「公鑰登陸」,就是用戶將本身的公鑰存儲在遠程主機上,登陸的時候,遠程主機會向用戶發送一段隨機字符串,用戶用本身的私鑰加密後,再發回去。遠程主機用事先存儲的公鑰進行解密,若是成功,就證實用戶是可信的,直接容許登陸shell,再也不要求密碼。服務器