需要注意:各台機器需要安裝expect。
假如連線外網則可以使用yum安裝。
yum install expect.
假如沒有連線外網的條件,也可以使用rpm包進行安裝
指令碼編寫如下:
其中第乙個引數為要設定ssh的使用者名稱,這裡為spark
第二個引數為使用者對應的密碼
第三個引數為要設定互通ssh的機器的ip列表
vi autossh.sh
#!/bin/sh
dest_user=$1
password=$2
hosts_file=$3
if [ $# -ne 3 ]; then
echo "usage:"
echo "$0 remoteuser remotepassword hostsfile"
exit 1
fissh_dir=~/.ssh
script_prefix=./tmp
echo *************************==
# 1. prepare directory .ssh
mkdir $ssh_dir
chmod 700 $ssh_dir
# 2. generat ssh key
tmp_script=$script_prefix.sh
echo "#!/usr/bin/expect">$tmp_script
echo "spawn ssh-keygen -b 1024 -t rsa">>$tmp_script
echo "expect *key*">>$tmp_script
echo "send \r">>$tmp_script
if [ -f $ssh_dir/id_rsa ]; then
echo "expect *verwrite*">>$tmp_script
echo "send y\r">>$tmp_script
fiecho "expect *passphrase*">>$tmp_script
echo "send \r">>$tmp_script
echo "expect *again:">>$tmp_script
echo "send \r">>$tmp_script
echo "interact">>$tmp_script
chmod +x $tmp_script
/usr/bin/expect $tmp_script
rm $tmp_script
# 3. generat file authorized_keys
cat $ssh_dir/id_rsa.pub>>$ssh_dir/authorized_keys
# 4. chmod 600 for file authorized_keys
chmod 600 $ssh_dir/authorized_keys
echo *************************==
# 5. copy all files to other hosts
for ip in $(cat $hosts_file)
do if [ "x$ip" != "x" ]; then
echo -------------------------
tmp_script=$.$ip.sh
# check known_hosts
val=`ssh-keygen -f $ip`
if [ "x$val" == "x" ]; then
echo "$ip not in $ssh_dir/known_hosts, need to add"
val=`ssh-keyscan $ip 2>/dev/null`
if [ "x$val" == "x" ]; then
echo "ssh-keyscan $ip failed!"
else
echo $val>>$ssh_dir/known_hosts
fifi
echo "copy $ssh_dir to $ip"
echo "#!/usr/bin/expect">$tmp_script
echo "spawn scp -r $ssh_dir $dest_user@$ip:~/">>$tmp_script
echo "expect *assword*">>$tmp_script
echo "send $password\r">>$tmp_script
echo "interact">>$tmp_script
chmod +x $tmp_script
#echo "/usr/bin/expect $tmp_script" >$tmp_script.do
#sh $tmp_script.do&
/usr/bin/expect $tmp_script
rm $tmp_script
echo "copy done."
fidone
echo done.
指令碼執行方式./autossh.sh spark 123456 /etc/hosts.conf
執行完成之後便可以幾台機器之間進行ssh免密登陸了 Linux虛擬機器的配置
虛擬機器相關配置 虛擬機器配置 2核cpu 2g記憶體 建立新的虛擬機器可以選擇 1.虛擬機器防火牆關閉 虛擬機器桌面 右鍵 open in teminal 命令如下 service iptables stop 2.ifconfig 當前虛擬機器ip cmd ipconfig 筆記本ip 膝上型電腦...
Linux 虛擬機器網路配置
這幾天被虛擬機器的網路配置搞得死去活來,將知識點總結下,以後參考。首先,你得了解什麼是虛擬網路,附上大佬的部落格 網路原理,以及對vmware workstation虛擬網路vmnet0 vmnet1 vmnet8的 環境 本機作業系統 win10 虛擬機器 fedora 21 了解什麼是 nat ...
虛擬機器Linux網路配置
linux系統配置ip 虛擬機器網絡卡介面卡為 橋接模式 linux伺服器網絡卡預設配置檔案在 etc sysconfig network scripts 下 這裡我的網絡卡名稱為ifcfg ens33 vi ifcfg ens33 開啟網絡卡配置檔案 說明 bootproto 用來設定網絡卡的啟動...