安裝SSHPASS
對(duì)于大多數(shù)最新的操作系統(tǒng),sshpass軟件包在默認(rèn)軟件包存儲(chǔ)庫(kù)中可用。可以使用以下命令在系統(tǒng)上安裝它。
在Debian上:
$ sudo apt install sshpass
在CentOS上:
$ yum --enablerepo = epel -y install sshpass
使用SSHPASS
sshspass使用sshspass環(huán)境變量存儲(chǔ)用戶密碼。需要首先使用sshspass變量和密碼,然后使用此命令。下面是一個(gè)使用sshspass的簡(jiǎn)單shell腳本。
export SSHPASS=ry3AvbWO0oupYX9HCMzp0Axx
sshpass -e scp testfile.csv user@example.com:/uploads/
還可以使用sshpass運(yùn)行ssh命令,如下所示
sshpass -e ssh user@example.com
shell腳本中解決SCP命令需要輸入密碼的問題
使用密鑰文件。
這里假設(shè)主機(jī)A(192.168.100.3)用來獲到主機(jī)B(192.168.100.4)的文件。
在主機(jī)A上執(zhí)行如下命令來生成配對(duì)密鑰:
ssh-keygen -t rsa
遇到提示回車默認(rèn)即可,公鑰被存到用戶目錄下.ssh目錄,比如root存放在:
/root/.ssh/id_rsa.pub
將 .ssh 目錄中的 id_rsa.pub 文件復(fù)制到 主機(jī)B 的 ~/.ssh/ 目錄中,并改名為 authorized_keys,
到主機(jī)A中執(zhí)行命令和主機(jī)B建立信任,例(假設(shè)主機(jī)B的IP為:192.168.100.4):
scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys
下面就可以用scp、ssh命令不需要密碼來獲取主機(jī)B的文件了ssh 192.168.100.4 回車就不需要密碼了。
注:其實(shí)id_rsa.pub內(nèi)容添加到對(duì)方機(jī)器的authorized_keys中就行了