SSH無密碼執行遠程服務器上的命令或密碼這個功能,在牽涉到多臺服務器的時候非常有用,如果一個任務牽涉到多臺服務器的配合等方面的事情,用這個命令就方便多了,
環境:
Centos 6.5 64bit
假定有兩臺服務器A,B
在A上以root登錄,
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub [email protected]:/root/
在B上以root登錄
檢查是否有~/.ssh/authorized_keys這個文件存在,如果不存在,則創建~/.ssh/
cd ~/.ssh
-bash: cd: /root/.ssh: 沒有那個文件或目錄
cd ~/
mkdir .ssh/
對這個文件夾賦權限 700
chmod 700 ~/.ssh/
cd .ssh/
touch authorized_keys
對anthorized_keys文件賦權限
chmod 600 authorized_keys
將之前A上copy過來的公匙文件的內容複製到anthorized_keys中
cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
重啓ssh服務
/etc/init.d/sshd restart
------------------------------至此整個流程完成-------------------------------------
可以採用如下方式驗證:
在B服務器上新建測試腳本vi /home/sys_monitor/test.sh
#! /bin/bash
echo "0.49"
保存後賦執行權限
cd /home/sys_monitor/
chmod a+x test.sh
在A上以root執行命令ssh [email protected] '/home/sys_monitor/test.sh'
0.49
證明執行成功
============================
錯誤:The authenticity of host 192.168.0.xxx can't be established.
執行 ssh -o StrictHostKeyChecking=no 192.168.0.xxx
-----------------------------------------------------
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.xx.xx