{"id":77437,"date":"2024-04-16T12:57:22","date_gmt":"2024-04-16T04:57:22","guid":{"rendered":"https:\/\/version-2.com\/?p=77437"},"modified":"2024-04-16T12:58:53","modified_gmt":"2024-04-16T04:58:53","slug":"remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys","status":"publish","type":"post","link":"https:\/\/version-2.com\/en\/2024\/04\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\/","title":{"rendered":"Remote virtual machine access using port forwarding and SSH private\/public keys"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"77437\" class=\"elementor elementor-77437\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71ae5294 post-content elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"71ae5294\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[{&quot;jet_parallax_layout_image&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;c4a899f&quot;,&quot;jet_parallax_layout_image_tablet&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_mobile&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_speed&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:50,&quot;sizes&quot;:[]},&quot;jet_parallax_layout_type&quot;:&quot;scroll&quot;,&quot;jet_parallax_layout_direction&quot;:&quot;1&quot;,&quot;jet_parallax_layout_fx_direction&quot;:null,&quot;jet_parallax_layout_z_index&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x&quot;:50,&quot;jet_parallax_layout_bg_x_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y&quot;:50,&quot;jet_parallax_layout_bg_y_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size&quot;:&quot;auto&quot;,&quot;jet_parallax_layout_bg_size_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_animation_prop&quot;:&quot;transform&quot;,&quot;jet_parallax_layout_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;]}]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1e9119cd\" data-id=\"1e9119cd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4f04f8cb elementor-widget elementor-widget-text-editor\" data-id=\"4f04f8cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png\" width=\"1138\" height=\"301\" \/><\/p><article class=\"post\"><a href=\"https:\/\/www.parallels.com\/products\/desktop\/\" target=\"_blank\" rel=\"noreferrer noopener\">Virtualization technology<\/a> allows us to create multiple virtual machines (VMs) on the same physical machine.<p>A virtual machine operates like a software program running on a computer, simulating the behavior of an independent machine.<\/p><p>In essence, it establishes a computer within another computer.<\/p><p>When operating within a window on the host computer, a virtual machine offers users an experience that\u2019s nearly identical to using a separate computer.<\/p><p>For many software developers, using a virtual machine is preferable for easy cross-platform compatibility purposes; they also offer greater security, flexibility, and scalability.<\/p><p>When setting up your virtual machine, you can access its graphic user interface (GUI) to interact with the virtual machine separately from the other machine(s) or operating systems on your physical computer.<\/p><p>However, relying solely on the GUI may not always be practical <a href=\"https:\/\/www.parallels.com\/products\/desktop\/use-cases\/developers\/\" target=\"_blank\" rel=\"noreferrer noopener\">if you\u2019re a software developer<\/a>, especially if you need to access a VM remotely.<\/p><p>In such cases, you should use the Secure Shell protocol (SSH) to execute remote logins or commands securely over an unsecured network.<\/p><p>Parallels Desktop enables remote access to virtual machines with SSH and port forwarding.<\/p><p>By default, Parallels Desktop operates in\u202f<a href=\"https:\/\/kb.parallels.com\/4948\" target=\"_blank\" rel=\"noreferrer noopener\">shared network<\/a>\u202fmode, which works \u201cout of the box\u201d and does not require any specific configuration.<\/p><p>Parallels Desktop will work as a virtual router for your virtual machines when you use this networking mode. However, it also means that the VMs cannot be accessed from external computers.<\/p><p>The port forwarding (also known as port mapping) functionality allows computers on your local network and the Internet to connect to any virtual machines that use the shared networking mode.<\/p><p>According to the port-forwarding rule, the connection to a specific port on your Mac will be redirected to a specific port of your virtual machine.<\/p><p>To gain remote access to a VM via port forwarding, you must first configure Parallels Desktop to accept the connection using a port forwarding rule.<\/p><p>This is achieved by following the process outlined below.<\/p><h2><strong>Establishing port forwarding rules<\/strong><\/h2><p><strong><em>Note:<\/em><\/strong><em>\u202fPort forwarding is only available in <\/em><a href=\"https:\/\/www.parallels.com\/products\/desktop\/pro\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Parallels Desktop for Mac Pro<\/em><\/a><em> and <\/em><a href=\"https:\/\/www.parallels.com\/products\/business\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Parallels Desktop Business Edition<\/em><\/a><em>.<\/em><\/p><h3><strong>1. Open the Parallels Desktop Command Center<\/strong><\/h3><h3><strong>2. Select the VM you want to access remotely\u00a0<\/strong><\/h3><p>Then, click the\u202f<strong>Configure<\/strong>\u202fbutton.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-42388\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-5.png\" sizes=\"(max-width: 428px) 100vw, 428px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-5.png 428w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-5-300x191.png 300w\" alt=\"\" width=\"428\" height=\"272\" \/><\/figure><h3><strong>3. Once the Configuration window opens, select the\u202fHardware tab<\/strong><\/h3><p>Then the\u202f<strong>Network<\/strong>\u202foption on the left side, then click \u201c<strong>Advanced<\/strong>.\u201d<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-42391\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-6.png\" sizes=\"(max-width: 436px) 100vw, 436px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-6.png 436w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-6-300x261.png 300w\" alt=\"\" width=\"436\" height=\"379\" \/><\/figure><h3><strong>4. Click on the \u201cOpen Networking Preferences\u201d button<\/strong><\/h3><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42392\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-7.png\" alt=\"\" width=\"295\" height=\"140\" \/><\/figure><h3><strong>5. Click the Add (+) button below the Port forwarding rules list<\/strong><\/h3><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42393\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-8.png\" sizes=\"(max-width: 423px) 100vw, 423px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-8.png 423w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-8-281x300.png 281w\" alt=\"\" width=\"423\" height=\"451\" \/><\/figure><h3><strong>6. In the displayed window, perform the following actions<\/strong><\/h3><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42394\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-9.png\" sizes=\"(max-width: 312px) 100vw, 312px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-9.png 312w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-9-300x230.png 300w\" alt=\"\" width=\"312\" height=\"239\" \/><\/figure><ul><li>In the\u202f<strong>Protocol\u202f<\/strong>field, specify the port type you want to establish network connections. You can choose between the\u202f<strong>TCP\u202f<\/strong>or\u202f<strong>UDP\u202f<\/strong>port types.<\/li><li>In the\u202f<strong>Source Port<\/strong>\u202ffield, type the incoming port number on your Mac.<\/li><li>In the <strong>Forward to<\/strong> section, indicate the name or IP address of the virtual machine you want to connect to.<\/li><li>In the <strong>Destination Port<\/strong> field, type the port on the virtual machine to which the data will be transferred.<\/li><\/ul><h3><strong>\u202f\u202f7. Click OK to add the rule<\/strong><\/h3><h2><strong>Checking port forwarding<\/strong><\/h2><p>To check that the rule works properly, enable, e.g., SSH on your virtual machine (some Linux distributions have it enabled by default).<\/p><p>As an example for SSH, use the following rule:<\/p><figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Protocol\u00a0<\/strong><\/td><td>TCP<\/td><\/tr><tr><td><strong>Source Port<\/strong><\/td><td>Choose a different port number between 1024 to 49151 for each VM<\/td><\/tr><tr><td><strong>Forward to<\/strong><\/td><td>Choose your virtual machine<\/td><\/tr><tr><td><strong>Destination Port<\/strong><\/td><td>22<\/td><\/tr><\/tbody><\/table><\/figure><p>To make sure that port forwarding is enabled from your Mac inside a virtual machine, use one of the following scenarios (in these examples, port 8081 is redirected to a Linux VM, and port 8888 is to a Windows VM) :<\/p><h3><strong>Scenario 1: connect from the same Mac<\/strong><\/h3><p>In\u202f<strong>Terminal,\u202f<\/strong>type in the following command and press Enter:<\/p><pre class=\"wp-block-preformatted\">ssh -l &lt;your_VM_username&gt; -p &lt;source_port&gt; 127.0.0.1<\/pre><p>Enter the password for the user in the virtual machine and press Enter:<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42395\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-10.png\" sizes=\"(max-width: 552px) 100vw, 552px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-10.png 552w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-10-300x205.png 300w\" alt=\"\" width=\"552\" height=\"378\" \/><\/figure><h3><strong>Scenario 2: connect from another Mac or PC in the same network<\/strong><\/h3><p>In\u202f<strong>Terminal\u202f<\/strong>(on Mac) or\u202f<strong>PowerShell\u202f<\/strong>(on Windows), type in the following command and press Enter:<\/p><pre class=\"wp-block-preformatted\">ssh -l &lt;your_VM_username&gt; -p &lt;source_port&gt; &lt;host_machine_IP_address&gt;<\/pre><p>Enter the password for the user in the virtual machine and press Enter.<\/p><p>To check that you logged into the virtual machine, execute the following command in <strong>Terminal<\/strong>:<\/p><pre class=\"wp-block-preformatted\">uname -a<\/pre><p>If you successfully log into the virtual machine, you will see a Linux kernel version.<\/p><p>The same method can also be used to set up an SSH port forward for a Windows machine by adding that to the port forwarding list:<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42396\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-11.png\" sizes=\"(max-width: 375px) 100vw, 375px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-11.png 375w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-11-282x300.png 282w\" alt=\"\" width=\"375\" height=\"399\" \/><\/figure><p>You can run a \u201csysteminfo\u201d command to verify the system you are on.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42397\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-12.png\" sizes=\"(max-width: 394px) 100vw, 394px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-12.png 394w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-12-300x267.png 300w\" alt=\"\" width=\"394\" height=\"351\" \/><\/figure><h2><strong>Using SSH key pairs<\/strong><\/h2><p>Now we have the systems tested and working using password authentication, we can make them more secure.<\/p><p>SSH public\/private keypairs offer a more secure, convenient, and scalable authentication mechanism than traditional password-based methods.<\/p><p>By leveraging SSH keypairs, organizations can strengthen their security posture and ensure secure remote access to their systems, eliminating the need to transmit passwords over the network.<\/p><p>With keypairs, the private key remains securely stored on the user\u2019s computer.<\/p><p>In contrast, the public key is stored on the server, significantly reducing the risk of interception by malicious actors.<\/p><p>Because the keypairs are generated using cryptographic solid algorithms, they are much longer than passwords, making them highly resistant to brute force attacks.<\/p><p>Once SSH keypairs are set up, users can seamlessly log in to SSH-enabled systems without entering a password, adding convenience for automated processes and scripts.<\/p><h2><strong>Generating SSH public\/private keys<\/strong><\/h2><p>The SSH key pair consists of two cryptographic keys: public and private keys.<\/p><p>These keys are mathematically related but are designed so that it is computationally infeasible to derive the private key from the public key.<\/p><p>The public key is shared securely with the server or system you want to access.<\/p><p>It can be freely distributed and stored on several servers or systems and is provided when you attempt to connect to a server.<\/p><p>The private key is kept securely on your local computer or device. It should never be shared with anyone else.<\/p><p>This key is used to decrypt encrypted messages with the corresponding public key, and when you attempt to connect to a server, your local SSH client uses your private key to prove your identity.<\/p><p>When you attempt to connect to a server using SSH, the server sends a message encrypted with your public key.<\/p><p>Your SSH client decrypts this message using your private key and sends back a response.<\/p><p>If the server can successfully decrypt your response using your public key, it knows you possess the corresponding private key, allowing you to access the system.<\/p><p>SSH keypairs are typically generated using cryptographic algorithms such as RSA or DSA.<\/p><p>Your local SSH client software can generate these keys for you. The keys are often stored in files (e.g., \u201cid_rsa\u201d for the private key and `id_rsa.pub` for the public key) in a hidden .ssh directory in your user\u2019s home directory.<\/p><h2><strong>Creating SSH keypairs<\/strong><\/h2><p>To explain how to generate and use the SSH keypairs, I have three systems: a Mac, which is my local machine; an Ubuntu VM, which will be the remote machine; and a Mac VM, which will use the port forwarding rules.<\/p><p>Each system has a different theme for the terminal windows to make it easier to follow.<\/p><p>First, I will check my local machine to ensure no local keys exist, using the command:<\/p><pre class=\"wp-block-preformatted\">ls ~\/.ssh\/id_*<\/pre><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42398\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-13.png\" sizes=\"(max-width: 610px) 100vw, 610px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-13.png 610w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-13-300x49.png 300w\" alt=\"\" width=\"610\" height=\"100\" \/><\/figure><p>As no matches were found, no keys were present on our local machine. If they are present, you should back them up in case they are accidentally removed or lost.<\/p><p>Next, we can generate our SSH key on the local machine.<\/p><p>To do this, type in the command:<\/p><pre class=\"wp-block-preformatted\">ssh-keygen<\/pre><p>The command replies that it is generating a public\/private keypair using rsa as the default encryption.<\/p><p>If you wish to use a different algorithm you can use the -t flag to select from the following alternatives: dsa, ecdsa, ecdsa-sk, ed25519, ed25519-sk.<\/p><p>I will also add a comment using the -C flag so that I can quickly identify what the key is for.<\/p><p>My command line would look like this:<\/p><pre class=\"wp-block-preformatted\">ssh-keygen -C \"Test for SSH Keys on Mac &amp; Ubuntu\"<\/pre><p>By default, the file is saved in my user directory in the .ssh folder, so I hit enter to accept that.<\/p><p>I also hit enter for the passphrase question, which adds an extra layer of security but also means I would have to enter it each time I connect. I am trying to avoid that in this example.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42399\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-14.png\" sizes=\"(max-width: 678px) 100vw, 678px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-14.png 678w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-14-300x167.png 300w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-14-150x84.png 150w\" alt=\"\" width=\"678\" height=\"378\" \/><\/figure><h2><strong>Retrieving the public key<\/strong><\/h2><p>If we rerun the ls command, we can see two files in the .ssh directory: the private and public keys.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42400\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-15.png\" sizes=\"(max-width: 658px) 100vw, 658px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-15.png 658w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-15-300x51.png 300w\" alt=\"\" width=\"658\" height=\"112\" \/><\/figure><p>Move into the .ssh directory, open the contents of the public file, and copy them so that we can add them to the remote machine in a file called authorized_keys.<\/p><pre class=\"wp-block-preformatted\">cd .ssh\u00a0\n\nls -la\u00a0\n\ncat id_rsa.pub<\/pre><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42401\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-16.png\" sizes=\"(max-width: 678px) 100vw, 678px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-16.png 678w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-16-300x151.png 300w\" alt=\"\" width=\"678\" height=\"342\" \/><\/figure><h2><strong>Adding the public key to the remote machine<\/strong><\/h2><p>To enable SSH access to a remote machine, you must upload the public key from your SSH key pair onto the remote server. This allows the remote machine to decrypt connections initiated by your local computer, which uses its corresponding private key for encryption.<\/p><p>On the remote machine, go to your home directory and check if the .ssh subdirectory exists:<\/p><pre class=\"wp-block-preformatted\">cd ~<\/pre><pre class=\"wp-block-preformatted\">ls -al ~<\/pre><p>If it does exist cd into that directory, and if it doesn\u2019t, create the subdirectory, and then go into it and check to see if the authorized_keys file exists:<\/p><pre class=\"wp-block-preformatted\">mkdir .ssh<\/pre><pre class=\"wp-block-preformatted\">cd .ssh<\/pre><pre class=\"wp-block-preformatted\">ls -al<\/pre><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42402\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-17.png\" sizes=\"(max-width: 678px) 100vw, 678px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-17.png 678w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-17-300x80.png 300w\" alt=\"\" width=\"678\" height=\"180\" \/><\/figure><p>If the authorized_keys file does not exist, create one using the following command:<\/p><pre class=\"wp-block-preformatted\">touch authorized_keys<\/pre><p>Then edit the file using your editor of choice to add the public key copied from the local machine.<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42403\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-18.png\" sizes=\"(max-width: 719px) 100vw, 719px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-18.png 719w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-18-300x74.png 300w\" alt=\"\" width=\"719\" height=\"178\" \/><\/figure><p>If you already have an authorized_keys file in the directory with content, add your new key on a new line and save the file.<\/p><h2 id=\"h-putting-it-all-together\"><strong>Putting it all together<\/strong><\/h2><p>Now that our private and public keys are created, we need to check that they work.<\/p><p>Check the IP address of your virtual machine from the Parallels devices-&gt; networking tab<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42405\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-20.png\" sizes=\"(max-width: 406px) 100vw, 406px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-20.png 406w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-20-300x177.png 300w\" alt=\"\" width=\"406\" height=\"240\" \/><\/figure><p>Now ssh into that system from your local host that has the private key installed on it:<\/p><pre class=\"wp-block-preformatted\">ssh &lt;user&gt;@&lt;ip address&gt;<\/pre><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42406\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-21.png\" sizes=\"(max-width: 678px) 100vw, 678px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-21.png 678w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-21-300x151.png 300w\" alt=\"\" width=\"678\" height=\"342\" \/><\/figure><p>And as you can see, we are logged in without providing a password.<\/p><p>As we have set up port forwarding on our local host, we should also be able to access the Ubuntu VM from a different system, but going through the host machine and using the port that was assigned at the beginning of this article, that being 8081 of the Mac system.<\/p><p>If I go to my Mac VM running on the same host, I can copy a key to the Ubuntu box, but this time, instead of cut\/paste, I will use the ssh-copy-id command to add to my authorized_keys file on the Ubuntu system, but using port 8081 of my host system:<\/p><pre class=\"wp-block-preformatted\">ssh-copy-id -p &lt;port&gt; &lt;user&gt;@&lt;ip address&gt;<\/pre><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42407\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-22.png\" sizes=\"(max-width: 678px) 100vw, 678px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-22.png 678w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-22-300x133.png 300w\" alt=\"\" width=\"678\" height=\"300\" \/><\/figure><p>We can check the key was correctly added by going back to the Ubuntu VM, and checking the authorized_keys file:<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42408\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-23.png\" sizes=\"(max-width: 676px) 100vw, 676px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-23.png 676w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-23-300x98.png 300w\" alt=\"\" width=\"676\" height=\"220\" \/><\/figure><p>\u00a0<\/p><p>The text highlighted in red is the new key from the Mac on the VM. If we return to that VM, we can execute the ssh command displayed at the end of the ssh-copy-id command message to access the Ubuntu VM system from my Mac\u2019s VM system via my host Mac:<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-42409\" src=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-24.png\" sizes=\"(max-width: 678px) 100vw, 678px\" srcset=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-24.png 678w, https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/image-24-300x155.png 300w\" alt=\"\" width=\"678\" height=\"351\" \/><\/figure><p>And as you can see from the command prompt at the end, I am back on the Ubuntu System.<\/p><p><em>Ready to try it yourself? Sign up now for a <\/em><a href=\"https:\/\/www.parallels.com\/products\/desktop\/trial\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>free 14-day trial<\/em><\/a><em> to see how easy it is to implement port forwarding and secure key pairs using Parallels Desktop Pro.<\/em>\u00a0<!-- AddThis Share Buttons generic via filter on the_content --><\/p><p><!-- AddThis Advanced Settings above via filter on the_content --><!-- AddThis Advanced Settings below via filter on the_content --><!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons above via filter on the_content --><!-- AddThis Share Buttons below via filter on the_content --><\/p><\/article>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a1b0f4 elementor-widget elementor-widget-shortcode\" data-id=\"1a1b0f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div data-elementor-type=\"page\" data-elementor-id=\"18103\" class=\"elementor elementor-18103\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-748947f elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"748947f\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[{&quot;jet_parallax_layout_image&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;_id&quot;:&quot;c4f773e&quot;,&quot;jet_parallax_layout_image_tablet&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_mobile&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_speed&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:50,&quot;sizes&quot;:[]},&quot;jet_parallax_layout_type&quot;:&quot;scroll&quot;,&quot;jet_parallax_layout_direction&quot;:&quot;1&quot;,&quot;jet_parallax_layout_fx_direction&quot;:null,&quot;jet_parallax_layout_z_index&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x&quot;:50,&quot;jet_parallax_layout_bg_x_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y&quot;:50,&quot;jet_parallax_layout_bg_y_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size&quot;:&quot;auto&quot;,&quot;jet_parallax_layout_bg_size_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_animation_prop&quot;:&quot;transform&quot;,&quot;jet_parallax_layout_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;]}]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7995c19\" data-id=\"7995c19\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a437045 elementor-widget elementor-widget-image-box\" data-id=\"a437045\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\">About Version 2 Digital<\/h3><p class=\"elementor-image-box-description\">Version 2 Digital is one of the most dynamic IT companies in Asia. The company distributes a wide range of IT products across various areas including cyber security, cloud, data protection, end points, infrastructures, system monitoring, storage, networking, business productivity and communication products.\n<br><br>\nThrough an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, different vertical industries, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\t\t<div data-elementor-type=\"page\" data-elementor-id=\"42979\" class=\"elementor elementor-42979\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6b25dc0d elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"6b25dc0d\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[{&quot;_id&quot;:&quot;c4f773e&quot;,&quot;jet_parallax_layout_image&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_tablet&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_image_mobile&quot;:{&quot;url&quot;:&quot;&quot;,&quot;id&quot;:&quot;&quot;,&quot;size&quot;:&quot;&quot;},&quot;jet_parallax_layout_speed&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:50,&quot;sizes&quot;:[]},&quot;jet_parallax_layout_type&quot;:&quot;scroll&quot;,&quot;jet_parallax_layout_direction&quot;:&quot;1&quot;,&quot;jet_parallax_layout_fx_direction&quot;:null,&quot;jet_parallax_layout_z_index&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x&quot;:50,&quot;jet_parallax_layout_bg_x_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_x_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y&quot;:50,&quot;jet_parallax_layout_bg_y_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_y_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size&quot;:&quot;auto&quot;,&quot;jet_parallax_layout_bg_size_tablet&quot;:&quot;&quot;,&quot;jet_parallax_layout_bg_size_mobile&quot;:&quot;&quot;,&quot;jet_parallax_layout_animation_prop&quot;:&quot;transform&quot;,&quot;jet_parallax_layout_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;]}]}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3cc1b37d\" data-id=\"3cc1b37d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-52c4a230 elementor-widget elementor-widget-text-editor\" data-id=\"52c4a230\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>About Parallels\u00a0<br \/><\/strong>Parallels\u00ae is a global leader in cross-platform solutions, enabling businesses and individuals to access and use the applications and files they need on any device or operating system. Parallels helps customers leverage the best technology available, whether it\u2019s Windows, Linux, macOS, iOS, Android or the cloud.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Virtualization technology allows us to create multiple  [&hellip;]<\/p>","protected":false},"author":149011790,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[587,1273,61],"tags":[589,1272],"class_list":["post-77437","post","type-post","status-publish","format-standard","hentry","category-awingu","category-1273","category-press-release","tag-awingu","tag-1272"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Remote virtual machine access using port forwarding and SSH private\/public keys - Version 2<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Remote virtual machine access using port forwarding and SSH private\/public keys - Version 2\" \/>\n<meta property=\"og:description\" content=\"Virtualization technology allows us to create multiple [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/\" \/>\n<meta property=\"og:site_name\" content=\"Version 2\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-16T04:57:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-16T04:58:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png\" \/>\n<meta name=\"author\" content=\"tracylamv2\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tracylamv2\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/version-2.com\\\/2024\\\/04\\\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\\\/\"},\"author\":{\"name\":\"tracylamv2\",\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#\\\/schema\\\/person\\\/011bc7c3731c930bcfeecd52fefb6365\"},\"headline\":\"Remote virtual machine access using port forwarding and SSH private\\\/public keys\",\"datePublished\":\"2024-04-16T04:57:22+00:00\",\"dateModified\":\"2024-04-16T04:58:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/version-2.com\\\/2024\\\/04\\\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\\\/\"},\"wordCount\":1895,\"publisher\":{\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/app\\\/uploads\\\/2024\\\/03\\\/Blog-header-1138x301-1.png\",\"keywords\":[\"Parallels\",\"2024\"],\"articleSection\":[\"Parallels\",\"2024\",\"Press Release\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/version-2.com\\\/2024\\\/04\\\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\\\/\",\"url\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/\",\"name\":\"Remote virtual machine access using port forwarding and SSH private\\\/public keys - Version 2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/app\\\/uploads\\\/2024\\\/03\\\/Blog-header-1138x301-1.png\",\"datePublished\":\"2024-04-16T04:57:22+00:00\",\"dateModified\":\"2024-04-16T04:58:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/app\\\/uploads\\\/2024\\\/03\\\/Blog-header-1138x301-1.png\",\"contentUrl\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/app\\\/uploads\\\/2024\\\/03\\\/Blog-header-1138x301-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.parallels.com\\\/blogs\\\/remote-virtual-machine-access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/version-2.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Remote virtual machine access using port forwarding and SSH private\\\/public keys\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#website\",\"url\":\"https:\\\/\\\/version-2.com\\\/zh\\\/\",\"name\":\"Version 2\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/version-2.com\\\/zh\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#organization\",\"name\":\"Version 2\",\"url\":\"https:\\\/\\\/version-2.com\\\/zh\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/version-2.com\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/v2-hk-hor-4.png?fit=1795%2C335&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/version-2.com\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/v2-hk-hor-4.png?fit=1795%2C335&ssl=1\",\"width\":1795,\"height\":335,\"caption\":\"Version 2\"},\"image\":{\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/version-2.com\\\/zh\\\/#\\\/schema\\\/person\\\/011bc7c3731c930bcfeecd52fefb6365\",\"name\":\"tracylamv2\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9d01d79cbfd8b2e878f5d701a362cc9fca466d33fec977b59706c23c1a2db15c?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9d01d79cbfd8b2e878f5d701a362cc9fca466d33fec977b59706c23c1a2db15c?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9d01d79cbfd8b2e878f5d701a362cc9fca466d33fec977b59706c23c1a2db15c?s=96&d=identicon&r=g\",\"caption\":\"tracylamv2\"},\"url\":\"https:\\\/\\\/version-2.com\\\/en\\\/author\\\/tracylamv2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Remote virtual machine access using port forwarding and SSH private\/public keys - Version 2","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/","og_locale":"en_US","og_type":"article","og_title":"Remote virtual machine access using port forwarding and SSH private\/public keys - Version 2","og_description":"Virtualization technology allows us to create multiple [&hellip;]","og_url":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/","og_site_name":"Version 2","article_published_time":"2024-04-16T04:57:22+00:00","article_modified_time":"2024-04-16T04:58:53+00:00","og_image":[{"url":"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png","type":"","width":"","height":""}],"author":"tracylamv2","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tracylamv2","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#article","isPartOf":{"@id":"https:\/\/version-2.com\/2024\/04\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\/"},"author":{"name":"tracylamv2","@id":"https:\/\/version-2.com\/zh\/#\/schema\/person\/011bc7c3731c930bcfeecd52fefb6365"},"headline":"Remote virtual machine access using port forwarding and SSH private\/public keys","datePublished":"2024-04-16T04:57:22+00:00","dateModified":"2024-04-16T04:58:53+00:00","mainEntityOfPage":{"@id":"https:\/\/version-2.com\/2024\/04\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\/"},"wordCount":1895,"publisher":{"@id":"https:\/\/version-2.com\/zh\/#organization"},"image":{"@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#primaryimage"},"thumbnailUrl":"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png","keywords":["Parallels","2024"],"articleSection":["Parallels","2024","Press Release"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/version-2.com\/2024\/04\/remote-virtual-machine-access-using-port-forwarding-and-ssh-private-public-keys\/","url":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/","name":"Remote virtual machine access using port forwarding and SSH private\/public keys - Version 2","isPartOf":{"@id":"https:\/\/version-2.com\/zh\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#primaryimage"},"image":{"@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#primaryimage"},"thumbnailUrl":"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png","datePublished":"2024-04-16T04:57:22+00:00","dateModified":"2024-04-16T04:58:53+00:00","breadcrumb":{"@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#primaryimage","url":"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png","contentUrl":"https:\/\/www.parallels.com\/blogs\/app\/uploads\/2024\/03\/Blog-header-1138x301-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.parallels.com\/blogs\/remote-virtual-machine-access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/version-2.com\/"},{"@type":"ListItem","position":2,"name":"Remote virtual machine access using port forwarding and SSH private\/public keys"}]},{"@type":"WebSite","@id":"https:\/\/version-2.com\/zh\/#website","url":"https:\/\/version-2.com\/zh\/","name":"Version 2","description":"","publisher":{"@id":"https:\/\/version-2.com\/zh\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/version-2.com\/zh\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/version-2.com\/zh\/#organization","name":"Version 2","url":"https:\/\/version-2.com\/zh\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/version-2.com\/zh\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/version-2.com\/wp-content\/uploads\/2020\/08\/v2-hk-hor-4.png?fit=1795%2C335&ssl=1","contentUrl":"https:\/\/i0.wp.com\/version-2.com\/wp-content\/uploads\/2020\/08\/v2-hk-hor-4.png?fit=1795%2C335&ssl=1","width":1795,"height":335,"caption":"Version 2"},"image":{"@id":"https:\/\/version-2.com\/zh\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/version-2.com\/zh\/#\/schema\/person\/011bc7c3731c930bcfeecd52fefb6365","name":"tracylamv2","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9d01d79cbfd8b2e878f5d701a362cc9fca466d33fec977b59706c23c1a2db15c?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9d01d79cbfd8b2e878f5d701a362cc9fca466d33fec977b59706c23c1a2db15c?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9d01d79cbfd8b2e878f5d701a362cc9fca466d33fec977b59706c23c1a2db15c?s=96&d=identicon&r=g","caption":"tracylamv2"},"url":"https:\/\/version-2.com\/en\/author\/tracylamv2\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbQRKm-k8Z","post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/posts\/77437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/users\/149011790"}],"replies":[{"embeddable":true,"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/comments?post=77437"}],"version-history":[{"count":7,"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/posts\/77437\/revisions"}],"predecessor-version":[{"id":77445,"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/posts\/77437\/revisions\/77445"}],"wp:attachment":[{"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/media?parent=77437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/categories?post=77437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/version-2.com\/en\/wp-json\/wp\/v2\/tags?post=77437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}