Differences

This shows you the differences between two versions of the page.

Link to this comparison view

isc:info:virtualmachine [2023/10/15 20:39]
florin.stancu
isc:info:virtualmachine [2025/10/11 16:41] (current)
florin.stancu [Local VM]
Line 19: Line 19:
 # first, check if a keypair already exists # first, check if a keypair already exists
 you@yourlaptop:​~#​ ls -l ~/.ssh/ you@yourlaptop:​~#​ ls -l ~/.ssh/
-# if the files `id_rsa` and `id_rsa.pub` already exist, SKIP this next step: +# if the files `id_ed25519` and `id_ed25519.pub` already exist, SKIP this next step: 
-you@yourlaptop:​~#​ ssh-keygen+you@yourlaptop:​~#​ ssh-keygen ​-t ed25519 ​ # use elliptic curves, better + shorter keys!
 # answer the defaults (aka just press enter multiple times) # answer the defaults (aka just press enter multiple times)
 you@yourlaptop:​~#​ ls -l ~/.ssh/ you@yourlaptop:​~#​ ls -l ~/.ssh/
--rw------- 1 root root 2602 Oct 15 12:59 id_rsa ​    # <-- THE PRIVATE KEY, keep secret! +-rw------- 1 root root 2602 Oct 15 12:59 id_ed25519 ​    # <-- THE PRIVATE KEY, keep secret! 
--rw-r--r-- 1 root root  571 Oct 15 12:59 id_rsa.pub # <-- your PUBLIC key to give away! +-rw-r--r-- 1 root root  571 Oct 15 12:59 id_ed25519.pub # <-- your PUBLIC key to give away! 
-# print and copy the private key (including the 'ssh-rsa' prefix!): +# print and copy the private key (including the 'ssh-ed25519' prefix!): 
-you@yourlaptop:​~#​ cat ~/.ssh/id_rsa.pub +you@yourlaptop:​~#​ cat ~/.ssh/id_ed25519.pub 
-ssh-rsa AAAAB3NzaC... ​ # a very long line containing the public key number+ssh-ed25519 ​AAAAB3NzaC... ​ # a very long line containing the public key number
 </​code>​ </​code>​
   * Now, connect to the university'​s frontend processor machine (FEP): <code bash>   * Now, connect to the university'​s frontend processor machine (FEP): <code bash>
Line 36: Line 36:
 [moodle.username@fep8 ~]$ mkdir -p ~/.ssh/ [moodle.username@fep8 ~]$ mkdir -p ~/.ssh/
 [moodle.username@fep8 ~]$ nano ~/​.ssh/​authorized_keys [moodle.username@fep8 ~]$ nano ~/​.ssh/​authorized_keys
-# paste your public key, INCLUDING THE ssh-rsa prefix!+# paste your public key, INCLUDING THE ssh-ed25519 ​prefix!
 # save, then exit! # save, then exit!
 </​code>​ </​code>​
Line 42: Line 42:
   * **DO NOT LOSE (or share) THE PRIVATE KEY ON YOUR PC!** It can be used to authenticate on your behalf on FEP (and possibly more servers you setup the key with)!   * **DO NOT LOSE (or share) THE PRIVATE KEY ON YOUR PC!** It can be used to authenticate on your behalf on FEP (and possibly more servers you setup the key with)!
   * Now it's time to use [[https://​cloud.grid.pub.ro/​|OpenStack'​s Web UI]]! Open it in your browser, authenticate using ''​login.upb.ro'',​ then:   * Now it's time to use [[https://​cloud.grid.pub.ro/​|OpenStack'​s Web UI]]! Open it in your browser, authenticate using ''​login.upb.ro'',​ then:
-  * Compute -> Key Pairs -> Import Public Key, give it a suggestive name (e.g., "My Laptop"​),​ set //Key Type// to ''​SSH''​ and paste your public key (contents of ''​id_rsa.pub''​). **Note**: you only need to do this once per your device'​s lifetime (redo only if you lose and re-generate the key!).+  * Compute -> Key Pairs -> Import Public Key, give it a suggestive name (e.g., "My Laptop"​),​ set //Key Type// to ''​SSH''​ and paste your public key (contents of ''​id_ed25519.pub''​). **Note**: you only need to do this once per your device'​s lifetime (redo only if you lose and re-generate the key!).
   * One-time setup is over! Proceed to create a new Virtual Machine and connect to it using ssh (read the following steps).   * One-time setup is over! Proceed to create a new Virtual Machine and connect to it using ssh (read the following steps).
  
Line 49: Line 49:
   * Go to [[https://​cloud.grid.pub.ro/​]]. Click Compute -> Instances -> Launch Instance button!   * Go to [[https://​cloud.grid.pub.ro/​]]. Click Compute -> Instances -> Launch Instance button!
     * Fill the Instance Name (use //your name + lab number// for law & order);     * Fill the Instance Name (use //your name + lab number// for law & order);
-    * Go to the **Source** page, search the Available section for ''​ISC ​2023''​ then click the //up arrow// icon to select it;+    * Go to the **Source** page, search the Available section for ''​ISC ​2025'' ​(choose the latest version) ​then click the //up arrow// icon to select it;
     * From **Flavor**, choose ''​m1.small''​ (1GB RAM, 10GB disk should be enough);     * From **Flavor**, choose ''​m1.small''​ (1GB RAM, 10GB disk should be enough);
     * From **Networks**,​ choose ''​vlan9''​ (click the //up arrow// icon);     * From **Networks**,​ choose ''​vlan9''​ (click the //up arrow// icon);
Line 64: Line 64:
 Our institution provides some rather limited resources at our disposal (mainly, a limit of 40 VMs). \\ Our institution provides some rather limited resources at our disposal (mainly, a limit of 40 VMs). \\
 **Please delete the instance** after you're done with your lab / assignment to allow others to use the infrastructure without any hurdles! **Please delete the instance** after you're done with your lab / assignment to allow others to use the infrastructure without any hurdles!
 +</​note>​
 +
 +===== Local VM =====
 +
 +You can find a downloadable VM for the ISC labs, together with the source code, on GitHub:
 +https://​github.com/​cs-pub-ro/​ISC-lab-vm/​releases
 +
 +Download either [[https://​www.virtualbox.org/​wiki/​Downloads|VirtualBox]] or [[https://​archive.org/​download/​vmwareworkstationarchive/​17.x/​|VMWare Workstation]] in order to readily use it!
 +
 +<spoiler Running the Virtual Machine using VMware>
 +  * Download the VM's project and open the ''​.vmx''​ file;
 +  * Note: it is **highly recommended** to use a SSH terminal from the physical system to work with the virtual machine. This way, we can use copy-paste in the terminal, we can customize the font, have scrollback and many other conveniences. To do this, follow the steps below:
 +    * Log in to the virtual machine console (the black screen) using the ''​student''​ account with the password ''​student''​.
 +    * Find out the IP address of the virtual machine on the ''​eth0''​ interface:<​code bash>
 +root@host:​~#​ ip addr sh eth0
 +</​code>​
 +    * From the physical system, open a terminal and initiate an SSH session using:<​code bash>
 +student@PC:​~$ ssh student@<​VM_IP_ADDRESS>​
 +</​code>​where ''<​VM_IP_ADDRESS>''​ is the IP address of the virtual machine as obtained above.
 +    * Aaand that's it!
 +</​spoiler>​
 +
 +<spoiler Running the Virtual Machine using VirtualBox>​
 +  * Download the VM's project and open the ''​.vbox''​ file;
 +  * //Don’t start it yet, we still have a few settings to configure!//​
 +  * It is **highly recommended** to use a SSH terminal from the physical system to work with the virtual machine. This way, we can use copy-paste in the terminal, we can customize the font, have scrollback and many other conveniences. To do this, follow the steps below:
 +    * For VirtualBox, we must manually add a port forwarding rule so we can access the machine via SSH from the host;
 +    * With the virtual machine turned off, open **Settings -> Network -> Advanced -> Port Forwarding** and add the following rule:
 +    {{ :​isc:​info:​port_forward_virtual_box.png?​600 | Port forwarding for SSH access from host machine }}
 +    * From the physical system, open a terminal and initiate an SSH session using:<​code bash>
 +student@PC:​~$ ssh -p 10022 student@localhost
 +</​code>​
 +</​spoiler>​
 +
 +<​note>​
 +The access credentials for the local virtual machine (the ''​host''​ station) are (//syntax: ''​username:​password''//​):​
 +  * ''​student:​student''​
 +  * ''​root:​student''​
 +By default, you can connect via SSH only using the ''​student''​ user; you can then switch to ''​root''​ using the command ''​sudo su''​.
 </​note>​ </​note>​
  
isc/info/virtualmachine.1697391589.txt.gz · Last modified: 2023/10/15 20:39 by florin.stancu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0