I think I'm gonna end this thing with "Linux is awesome and..."
[Galaga ringtone]
I just got an email.
Subject line: "help", Body: nothing.
"Why?"
[Intro music]
Greetings, and welcome to another thrilling episode of Veronica Explains. I'm Veronica,
and today I'd like to talk to you about one of my favorite "tools of the trade": Remmina.
Remmina is a handy remote desktop program for Linux systems,
and it is awesome. I use Remmina to connect to remote desktops for customers
and for development purposes, and it's a very capable program.
In today's video, I'm going to teach you how to set up Remmina on your Linux desktop.
In my case, I'm going to be installing it on Pop!_OS 21.10, which is in beta at the time I'm
making this video. Small side note- I've finally decided to run Pop!_OS inside a virtual machine,
because I'm really tired of editing production customer information out of my videos.
I'm then going to show you how to use Remmina to connect to a Windows 10 machine,
as well as a Linux machine. The Linux target for my remote shenanigans will
be a vanilla Fedora 35, (weird noises) that's really hard to say.
The Linux target for my remote shenanigans will be a
standard Fedora 35, which is an awesome distro and totally worth your attention.
In order to get started using Remmina, you'll have to download it. I'm recording this video in
November 2021, and Remmina is readily available as a Flatpak, which is an awesome way to get
programs. If you're using Ubuntu and feeling snappy, you can also grab it from the snap store.
If you're using another distro such as Debian, Arch,
or Gentoo, please let me know in the comments how you install Remmina.
So now that we've installed Remmina, let's dive in to configuring a Linux
system to allow remote access, in this case, our Fedora 35 box.
The first thing you'll need to do is find your IP address. Now, there are ways to do this without
touching the terminal, but this is a how-to video, so I figure I should bust out some terminal
nerditude here. Plus, the terminal is awesome, and reasonably standard among modern Linuxes.
So, the command you'll need here is "ip a". This will read out a bunch
of data about your IP address, but it's this one right here that we're after.
If you have a bunch of interfaces, you might see multiple IP addresses.
Now that we know our IP address, we need to configure our Fedora install for remote access.
Now, most Linuxes use VNC, a robust remote access protocol
which I've used in personal and commercial environments for years.
Also, recent GNOME distros, such as Fedora, should all have very similar setups to the
one I'm about to demonstrate. If you're using something like Plasma, Elementary,
or some neat tiling window manager, your experience here may vary. However,
from my poking around at it over the years, it's reasonably similar in other popular environments.
OK, so in GNOME on Fedora, we have to start in the settings app.
From there, we go to the "sharing" menu, and then we have to "enable screen sharing"
by checking the little box at the top-right corner of the window.
From here, we select "Screen Sharing", and then we have to check the boxes for "Allow
connections to control the screen". We should also require a password - this is especially
helpful if there's a chance someone won't be at the machine when you need to remote into it.
Then you "enable" the screen sharing by checking the little box at the top-left
corner of the window. Why it moved from one side to the other is beyond me.
Now, our target machine is all set up, and we can test our remote access.
First, we should name the target, or "server" in remote access lingo (note that
this isn't the same thing as a "server" from a network, or a "server" from a restaurant).
Then, you can assign the server a "group", which is useful if you have
multiple devices you'll be accessing on a regular basis.
In our case, I'm going to call my group "mom",
becase I'm pretending this is a computer at my mom's house.
Then, we need to specify the protocol. For this device,
we can use the GNOME VNC plugin. You can also use the Remmina VNC Plugin,
but you might need to add the username to your connection settings.
Anywho, under "Server", you add that IP address we found earlier,
and then you enter the VNC password.
Before we connect, I want to touch base about the SSH tunnel option here.
It is amazing. You can use this feature to connect to a remote machine on another network,
by tunneling your connection to an SSH connection at the other network. This can be
done with just a little bit of elbow grease on the other end, in the form of port forwarding.
I was really hoping at this point to show you a step-by-step of how to set up port forwarding
and an SSH tunnel. Unfortunately, at the time I'm recording this video,
COVID is running rampant throughout Minnesota, and we've essentially run out of hospital beds.
So for the moment, I'm choosing not to do a full breakdown of SSH tunneling,
because I don't really want to go film on location anywhere.
I might come back to this in a follow-up video. Let me know if that would be interesting to you.
Anywho, if this remote machine was on another network, you can set the SSH settings here. I
recommend using security keys for any SSH work you might be doing, in pretty much any context I
can imagine. If you want me to nerd out and talk about SSH keys in a future video, let me know.
Moving on, we'll just disable the SSH tunnel for now,
and connect locally. Hitting "save and connect" will save the session, and then connect.
One more password prompt, and then we're in to the remote machine. Poof, magic!
From here, it's as though you're sitting in front of the remote computer. You can work
on documents, run local web utilities, and download programs onto the remote device.
Now that we've connected to a remote Linux machine, let's try the same thing,
but with Windows!
We start out much the same way on our Windows machine as we did on the Fedora box.
First, we first need to find the IP address to do this. I often go in graphically, by right clicking
on the network icon and then selecting "Open Network & Internet Settings", and then hitting
"properties". From here you can scroll on down to the bottom to see your IP address.
I'll also show you a PowerShell way, because I'm an equal opportunity terminal nerd.
In PowerShell, you can use the cmdlet "Get-NetIPAddress" to show the IP address
for your machine. Note that you'll want to make sure you are using the right device's IP address.
In my case, I want the Ethernet IP, and not any of this other stuff.
Anywho, once you have the IP address jotted down,
hit this super-key icon in the corner, and just type "remote desktop settings".
Click on the settings menu that pops up, and then hit the slider that says
"Enable Remote Desktop". It'll ask you if you want to confirm, and we should say "yes".
With this, we should be ready to connect from our main machine.
From Remmina, we do just like we did before:
we click on the "add" button and give it a useful name.
I'm going with Win 10 at Moms.
I'm going to assign it to the "Mom" group, in order to keep my remote connections nice and neat.
You'll be glad you did this when you have dozens of connections in here.
Next we need to choose a protocol, and for basic Windows connections, we'll use RDP.
RDP, or "Remote Desktop Protocol", is the Windows-y way to connect to a remote machine.
It's baked into many different versions of Windows, including the various iterations
of Windows Server. As such, it's a good baseline for viewing remote Windows machines.
There are plenty of reasons why you might prefer to install a third party remote access tool on
Windows, and I'll go over one of them shortly. Sit tight- for now we're moving forward with RDP.
From here, we type in the server IP address.
In our case, it's the IP address we wrote down earlier.
We also have to indicate the username and password. If we're connecting to a machine
on an active directory domain, we'd indicate that domain here as well.
For most home uses, you can probably just skip that.
Lastly, I want to talk about the "share folder". This is a very, very neat feature
which lets you share a folder from your machine to the remote system you're connecting to.
In my example, I found a neat picture of an NES, and I want to share it with my mom's Windows 10
computer. Well, using Remmina, I can select my "downloads" folder as a "shared folder". [pause]
Now, files in my local "downloads" folder will be shared with the Windows machine I'm connecting to.
Now, we "save and connect" in order to make the connections happen.
You might get a pop-up about accepting a changed certificate. In my case, it's because I've used
this IP address before on another machine. I've also seen similar warnings on initial
connection to a new server. I'm confident in this case that I'm safe to hit "Yes".
If you're connecting using Remmina in a secure environment, and you see an unexpected warning
about changed certificates, you may want to review the access rights of the remote machine.
In any case, here, I hit "yes", and after a moment,
I'm connected with the remote Windows machine.
Unlike the VNC connection on Linux, here I can see the screen size has been totally borked. Luckily,
Remmina has a neat tool for RDP: Toggle Dynamic Resolution Update.
When you select that, it automatically resizes the Windows window to match your Linux window.
The remote connection is made, and just like before,
we can interact with this desktop just like we were sitting in front of it!
So now, let's look for that shared folder: I'll open up File Explorer, and expand the "This
PC" section, and boom! We've got a shared folder with our NES photo, ready to share with Mom's PC.
Another neat feature is that we've got a shared clipboard out of the box between
our Linux box and our Windows machine. I can edit text in a Linux program and hit
copy, and then paste it right into notepad. This is super handy when
you're trying to share code snippets with someone else working far away from you.
Before we wrap up, I did want to talk about the biggest limitation
with using RDP as a remote desktop solution on Windows. And that is sharing a screen.
Without getting too into the weeds here, RDP on its own for most average users
has a licensing limitation which means that the end user - the person you'd
be connecting with - isn't able to see the screen when you're working with their device.
When you connect via RDP, the target screen simply locks up. You have full control at this point,
but the end user won't see a thing. As you can imagine, this would be
quite unnerving if you were attempting to use RDP in a remote support capacity.
Because of this, I usually limit my usage of RDP to non-production servers and personal machines.
There are alternatives which can overcome this limitation,
and if that's something you want me to cover, let me know.
In any case, Remmina is a fantastic tool that I find
indispensable when working with machines both within my network as well as outside of it.
I'm so happy that the Linux community gets to use awesome tools like Remmina.
And why shouldn't we have tools like this? I mean, Linux is awesome!
And so are you!
[Kid screaming] 1, 2, 3, 4
[punk music]