注意:如果a機器需要免密碼登入b機器,則需要把a機器的公鑰id_rsa.pub 加到 b機器的authorized_keys,不要弄反了
ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh-keygen生成公鑰/私鑰對,下面我以centos為例。
有機器a(192.168.1.155),b(192.168.1.181)。現想a通過ssh免密碼登入到b。
1.在a機下生成公鑰/私鑰對。
[chenlb@a ~]$ ssh-keygen -t rsa
不用輸入任何東西,回車三次
它在/root下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
2.把a機下的id_rsa.pub複制到b機下,在b機的.ssh/authorized_keys檔案裡,我用scp複制。
[chenlb@a ~]$ scp .ssh/id_rsa.pub [email protected]:/home/chenlb/id_rsa.pub
[email protected]'s password:
id_rsa.pub 100% 223 0.2kb/s 00:00
由于還沒有免密碼登入的,是以要輸入密碼。
3.b機把從a機複制的id_rsa.pub添加到/root/.ssh/authorzied_keys檔案裡。
[chenlb@b ~]$ cat id_rsa.pub >> /root/.ssh/authorized_keys
[chenlb@b ~]$ chmod 600 /root/.ssh/authorized_keys
注意:authorzied_keys是檔案,不是目錄,把a機的公鑰id_rsa.pub的内容追加到b機的/root/.ssh/authorized_keys檔案中。authorized_keys的權限要是600,不能是777及其他。
4.a機登入b機。
[chenlb@a ~]$ ssh 192.168.1.181
the authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
rsa key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
are you sure you want to continue connecting (yes/no)? yes
warning: permanently added '192.168.1.181' (rsa) to the list of known hosts.
last login: thu jul 3 09:53:18 2008 from chenlb
[chenlb@b ~]$
第一次登入是時要你輸入yes。
現在a機可以無密碼登入b機了。
特别要注意檔案權限,問題,不然會出現各種問題,導緻無法免密碼登入。
(1)root 目錄權限
(2).ssh目錄權限
(3)公鑰私鑰權限
想讓a,b機無密碼互登入,那b機以上面同樣的方式配置即可。