1、環境配置linux
一、系統:CentOS release 5.6 IP:192.168.4.200 主機名:JW01bash
二、系統:CentOS release 5.9 IP:192.168.4.244 主機名:JW02服務器
三、系統:CentOS release 5.3 IP:192.168.4.232 主機名:KT01ssh
四、系統:Red Hat release 4 IP:192.168.4.201 主機名:KT02ide
2、服務器配置函數
一、在每臺服務器上都執行ssh-keygen -t rsa 生成密鑰get
[root@jw01 .ssh]# ssh-keygen -t rsa
[root@jw02 .ssh]# ssh-keygen -r rsa
[root@kt01 .ssh]# ssh-keygen -t rsa
[root@kt02 .ssh]# ssh-keygen -t rsait
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #回車表明無需密碼登錄
Enter passphrase (empty for no passphrase): #回車
Enter same passphrase again: #回車
Your identification has been saved in /root/.ssh/id_rsa. #表明私鑰
Your public key has been saved in /root/.ssh/id_rsa.pub. #表明公鑰
The key fingerprint is:
04:45:0b:47:10:92:0c:b2:b9:d7:11:5b:49:05:e4:d9 root@jw01io
二、在每臺服務器上將公鑰複製到無需登陸的服務器上,如192.168.4.200 /244/232/2014臺作相互無需密碼登陸,在每臺服務器生成密鑰後,在每一臺服務器上執行ssh-copy-id的命令;以192.168.4.200爲例;其餘三臺服務器也是一樣的操做;登錄
例:192.168.4.200
[root@jw01 ~]# cd ~/.ssh
[root@jw01 .ssh]# ssh-copy-id -i id_rsa.pub "-p 22 root@192.168.4.244"
[root@jw01 .ssh]# ssh-copy-id -i id_rsa.pub "-p 22 root@192.168.4.232"
[root@jw01 .ssh]# ssh-copy-id -i id_rsa.pub "-p 22 root@192.168.4.201"
root@192.168.4.244's password: #輸入密碼
Now try logging into the machine, with "ssh '-p 22 root@192.168.4.244'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
以上信息出現就表明複製成功!
以上,能夠自動將公鑰添加到authorized_keys的文件中,在每臺服務器都執行完以上的步驟就能夠實現多臺服務器無需密碼相互訪問了。
3、故障處理
一、若是ssh-copy-id 函數在遠程服務器不存在;以下
[root@kt02 .ssh]# ssh-copy-id -i id_rsa.pub "-p 22
root@192.168.4.244"
-bash: ssh-copy-id: command not found
能夠嘗試用一下命令解決,直接複製本地的pubkey內容到遠程服務器;
[root@kt02 .ssh]# cat ~/.ssh/id_*.pub | ssh root@192.168.4.244 'cat > .ssh/authorized_keys'
4、登陸SSH
一、登陸遠程服務器就不須要密碼:
[root@kt02 .ssh]# ssh root@192.168.4.244
二、登陸遠程服務器有端口的須要添加端口-P
[root@jw02 .ssh]# ssh ken@223.73.125.198 -p 511190
三、你依然被要求輸入遠程服務器密碼, 那說明你的用戶在遠程服務器上面沒有足夠的權限;請查看一下你的遠程登陸的用戶以及authorized_keys文件在哪一個用戶的目錄下。