고양이는 ssh-VM
HOSTIP =`IP 라우팅하는 일을 얻을 | AWK '{일치 ($ 0 /.+src\s([.0-9]+)/하는) A [1] 인쇄, 종료}'` HOST_NETS =`IP 요지 | 그렙 192.168.3.33 | AWK '{일치 ($ 0 /.+inet\s([/.0-9]+)/하는) A [1] 인쇄, 종료}'` HOST_NETS = $ {HOST_NETS : -192.168.3.0 / 24} NETS = $ {NETS : - $ HOST_NETS} MAC # $으로는 = {MAC : -08 : 00 : 27 : 7C : 55 : 26} VBoxManage 목록의 VM USR = $ {USR : -mxh} VM1 = $ (VBoxManage 목록의 VM | 헤드 (1) -n | AWK '{$ 1를 인쇄}') VM1 = $ {VM1 : -ubuntu - 18.04를} VM1은 $에게 {VM1의 %를 \ "*} = VM1 = $ {VM1 # * \ "} VMNAME = $ {VMNAME : - $ VM1} 에코 "VM 이름은 다음과 같습니다 $ VMNAME" | NIC_MAC =`VBoxManage showvminfo $ VMNAME 2 --details> & 1 그렙 '. NIC * MAC'| - 재 SED의 /.* MAC (. +) 첨부 * / \ 1 /. "-e 'S / (\ {2} w) / \ 1 / g'-e 'S / : $ / /` MAC = $ {MAC : - $ NIC_MAC} 에코 "VM NIC MAC입니다 : $ MAC" # VBoxManage guestproperty 열거 $ VMNAME # VBoxManage guestproperty GET $ VMNAME "/ 버추얼 / GuestInfo / 네트 / 1 / V4 / IP"| AWK '{인쇄 ($ 2); } ') # ssh를 -l USERNAME $ VM_IP # VM_IP = $ (vboxmanage guestproperty GET "VM_NAME" "/ 버추얼 / GuestInfo / 네트 / 0 / V4 / IP"| AWK '{인쇄 ($ 2);}') # VBoxManage guestproperty GET "CHICAGOVPN" "/ 버추얼 / GuestInfo / 네트 / 0 / V4 / IP"| AWK '{$ 2 인쇄}' 에코 "먼저 실행하여 네트워크 ($ NETS)에서하시기 바랍니다 frush에 ARP 테이블" 에코 "의 nmap -sP $ NETS" IP =`IP 이웃 | 그렙 "$ MAC"| 컷 ""-d -f1` VMIP = $ {VMIP : - IP} 에코는 "VM IP입니다 : $ IP" 경우 [-n $ IP] 그때 에코 "VM IP는 NULL, 종료입니다" 1 번 출구 있다 에코 "로그 VM : ssh를 $ USR @ $ IP" ssh를 $ USR @ $ IP 종료 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 | 그렙 $ MAC | | AWK '{$ 2 인쇄}' SED의 / [()] // g'` 에코 $ IP # https://serverfault.com/questions/540107/connect-via-ssh-to-virtualbox-guest-vm-without-knowing-ip-address # 리눅스 vboxmanage는 NIC의 MAC 주소를 표시
NETS = 192.168.3.0 / 24 MAC # $으로는 = {MAC : -08 : 00 : 27 : 7C : 55 : 26} VBoxManage 목록의 VM USR = $ {USR : -mxh} VM1 = $ (VBoxManage 목록의 VM | 헤드 (1) -n | AWK '{$ 1를 인쇄}') VM1 = $ {VM1 : -ubuntu - 18.04를} VM1은 $에게 {VM1의 %를 \ "*} = VM1 = $ {VM1 # * \ "} VMNAME = $ {VMNAME : - $ VM1} 에코 "VM 이름은 다음과 같습니다 $ VMNAME" | NIC_MAC =`VBoxManage showvminfo $ VMNAME 2 --details> & 1 그렙 '. NIC * MAC'| - 재 SED의 /.* MAC (. +) 첨부 * / \ 1 /. "-e 'S / (\ {2} w) / \ 1 / g'-e 'S / : $ / /` MAC = $ {MAC : - $ NIC_MAC} 에코 "VM NIC MAC입니다 : $ MAC" # VBoxManage guestproperty 열거 $ VMNAME # VBoxManage guestproperty GET $ VMNAME "/ 버추얼 / GuestInfo / 네트 / 1 / V4 / IP"| AWK '{인쇄 ($ 2); } ') # ssh를 -l USERNAME $ VM_IP # VM_IP = $ (vboxmanage guestproperty GET "VM_NAME" "/ 버추얼 / GuestInfo / 네트 / 0 / V4 / IP"| AWK '{인쇄 ($ 2);}') # VBoxManage guestproperty GET "CHICAGOVPN" "/ 버추얼 / GuestInfo / 네트 / 0 / V4 / IP"| AWK '{$ 2 인쇄}' 에코 "frush의 ARP 테이블에 제발 먼저 실행에 의해" 에코 "의 nmap -sP $ NETS" IP =`IP 이웃 | 그렙 "$ MAC"| 컷 ""-d -f1` VMIP = $ {VMIP : - IP} 에코는 "VM IP입니다 : $ IP" 경우 [-n $ IP] 그때 에코 "VM IP는 NULL, 종료입니다" 1 번 출구 있다 에코 "로그 VM : ssh를 $ USR @ $ IP" ssh를 $ USR @ $ IP 종료 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 | 그렙 $ MAC | | AWK '{$ 2 인쇄}' SED의 / [()] // g'` 에코 $ IP # https://serverfault.com/questions/540107/connect-via-ssh-to-virtualbox-guest-vm-without-knowing-ip-address # 리눅스 vboxmanage는 NIC의 MAC 주소를 표시