zoukankan      html  css  js  c++  java
  • connect via ssh to virtualbox guest vm without knowing ip address

    cat ssh-vm

    HOSTIP=`ip route get 1 | awk '{match($0, /.+srcs([.0-9]+)/, a);print a[1];exit}'`
    HOST_NETS=`ip addr |grep 192.168.3.33 | awk '{match($0, /.+inets([/.0-9]+)/, a);print a[1];exit}'`
    HOST_NETS=${HOST_NETS:-192.168.3.0/24}
    NETS=${NETS:-$HOST_NETS}
    # MAC=${MAC:-08:00:27:7c:55:26}
    VBoxManage list vms
    USR=${USR:-mxh}
    VM1=$(VBoxManage list vms | head -n 1 | awk '{ print $1 }')
    VM1=${VM1:-ubuntu-18.04}
    VM1=${VM1%"*}
    VM1=${VM1#*"}
    VMID1=$(VBoxManage list vms | head -n 1 | awk '{ print $2 }')
    VMID1=${VMID1%}*}
    VMID1=${VMID1#*{}
    VMNAME=${VMNAME:-$VM1}
    echo "VM name is: $VMNAME, UUID is: $VMID1"
    NIC_MAC=`VBoxManage showvminfo $VMNAME --details 2>&1 | grep 'NIC.*MAC' | sed -re 's/.*MAC: (.+), Attachment.*/1/' -e 's/(w{2})/1:/g' -e 's/:$//'`
    MAC=${MAC:-$NIC_MAC}
    echo "VM nic MAC is: $MAC"
    # VBoxManage guestproperty enumerate $VMNAME
    # VBoxManage guestproperty get $VMNAME "/VirtualBox/GuestInfo/Net/1/V4/IP" | awk '{ print($2); }')
    # ssh -l USERNAME $VM_IP
    # VM_IP=$(vboxmanage guestproperty get "VM_NAME" "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print($2); }')
    # VBoxManage guestproperty get "CHICAGOVPN" "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print $2 }'
    
    echo "Please to frush arp table in networks($NETS) firstly by run:"
    echo "nmap -sP $NETS"
    IP=`ip neighbor | grep -i "$MAC" | cut -d" " -f1`
    VMIP=${VMIP:-IP}
    echo "VM IP is: $IP"
    if [ !-n $IP ]; then
      echo "VM IP is NULL, exit"
      exit 1
    fi
    echo "Log VM: ssh $USR@$IP"
    ssh $USR@$IP
    exit 0
    # fping -f $NETS
    # https://stackoverflow.com/questions/13552881/can-i-determine-the-current-ip-from-a-known-mac-address
    IP=`nmap -sP $NETS >/dev/null && arp -an | grep $MAC | awk '{print $2}' | sed 's/[()]//g'`
    echo $IP
    
    # https://serverfault.com/questions/540107/connect-via-ssh-to-virtualbox-guest-vm-without-knowing-ip-address
    # linux vboxmanage show  nic  mac address
    

      

      

    NETS=192.168.3.0/24
    # MAC=${MAC:-08:00:27:7c:55:26}
    VBoxManage list vms
    USR=${USR:-mxh}
    VM1=$(VBoxManage list vms | head -n 1 | awk '{ print $1 }')
    VM1=${VM1:-ubuntu-18.04}
    VM1=${VM1%"*}
    VM1=${VM1#*"}
    VMNAME=${VMNAME:-$VM1}
    echo "VM name is: $VMNAME"
    NIC_MAC=`VBoxManage showvminfo $VMNAME --details 2>&1 | grep 'NIC.*MAC' | sed -re 's/.*MAC: (.+), Attachment.*/1/' -e 's/(w{2})/1:/g' -e 's/:$//'`
    MAC=${MAC:-$NIC_MAC}
    echo "VM nic MAC is: $MAC"
    # VBoxManage guestproperty enumerate $VMNAME
    # VBoxManage guestproperty get $VMNAME "/VirtualBox/GuestInfo/Net/1/V4/IP" | awk '{ print($2); }')
    # ssh -l USERNAME $VM_IP
    # VM_IP=$(vboxmanage guestproperty get "VM_NAME" "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print($2); }')
    # VBoxManage guestproperty get "CHICAGOVPN" "/VirtualBox/GuestInfo/Net/0/V4/IP" | awk '{ print $2 }'
    
    echo "Please to frush arp table firstly by run:"
    echo "nmap -sP $NETS"
    IP=`ip neighbor | grep -i "$MAC" | cut -d" " -f1`
    VMIP=${VMIP:-IP}
    echo "VM IP is: $IP"
    if [ -n $IP ]; then
      echo "VM IP is NULL, exit"
      exit 1
    fi
    echo "Log VM: ssh $USR@$IP"
    ssh $USR@$IP
    exit 0
    # fping -f $NETS
    # https://stackoverflow.com/questions/13552881/can-i-determine-the-current-ip-from-a-known-mac-address
    IP=`nmap -sP $NETS >/dev/null && arp -an | grep $MAC | awk '{print $2}' | sed 's/[()]//g'`
    echo $IP
    
    # https://serverfault.com/questions/540107/connect-via-ssh-to-virtualbox-guest-vm-without-knowing-ip-address
    # linux vboxmanage show  nic  mac address
    

      

  • 相关阅读:
    Ubuntu 13.10 x64 安装 Eclipse Android SDK Java开发IDE
    域名 TTL 查询
    mysql 常用设置:字符集编码、自动完成(自动提示)、监听外网ip
    PHP 设置:timezone、error_log
    数字发行:电子书、电影、游戏、音乐
    细节:php array会把string key自动转成int吗?
    REST URI设计:版本号放在http header中,rewrite配置
    Linux时区设置
    Linux添加sudo用户
    php curl常见错误:SSL错误、bool(false)
  • 原文地址:https://www.cnblogs.com/shaohef/p/11968624.html
Copyright © 2011-2022 走看看