其實這個問題的網上、園子里已經有很多的博客介紹了,但多數都忽略了一個問題,就是生成公鑰時是不要輸入密碼的,整理一下:
1. 有A,B兩台機(Linux/unix), 要想從A用ssh遠程登錄到B上(假設各自的IP,A:192.168.100;B:192.168.1.104)。
2. 在A機上,用“ssh-keygen -t rsa”命令生成公鑰,注意這里一直回車就是了。好了,這時在“~/.ssh/”下就已經生成“id_rsa、id_rsa.pub”兩個文件了。
3. 還在A機上,將剛才生成的id_rsa.pub文件復制到B機上,可以使用命令“scp ~/.ssh/id_rsa.pub root@192.168.1.104:/root/”,這時就把id_rsa.pub文件復制到B機的/root下了。
4. 用root用戶登錄到B機上,這時就可以看到剛剛復制過來的id_rsa.pub文件了,使用命令“cat id_rsa.pub >> ~/.ssh/authorized_keys” 將A機的公鑰加入到authorized_keys文件,(有時~/下沒有.ssh文件夾或沒有authorized_keys文件,如果這樣,自己手動創建就好了)。
5. 還在B機上,重啟sshd服務,命令“service ssh restart”。
6. 回A機上,試試, 命令“ssh root@192.168.1.104”, 不出意外就無需密碼登錄進去了!
要注意的事項:
1. ssh-keygen -t rsa 生成公鑰時一直回車不要輸入密碼,就是空密碼。
2. 要用哪個用戶遠程登錄就把id_rsa.pub復制到用戶對應路徑下,如:root用戶就復制到/root/下; andychen用戶就復制到/home/andychen/下,不要混了。
3. B機上的文件權限: .ssh文件夾(700);authorized_keys(600)。