Establishing an ssh connection requires a a lot of communication between your host computer and the EV3 and can take several seconds. Although this is fine a long-lived connection, it can be quite tedious if you want to use ssh to invoke a single command or scp to transfer files. By instructing ssh to reuse connections, each connection after the first one will reuse the session that was already established, drastically speeding up ssh and scp commands.
Edit or create a new file at ~/.ssh/config
. Add the following contents:
Host ev3
HostName ev3dev.local
User robot
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
This configuration does several things: it establishes ev3
as a nickname (so you don’t have to type
ev3dev.local
all the time), defaults to robot
as the user name, and instructs ssh to automatically
share connections. If this configuration does not work, replace ev3dev.local.
with the IP address
of your EV3.
Start by creating a new ssh session to your EV3:
ssh ev3
After a few seconds you will be prompted for a password and then will be greeted with the shell prompt from the EV3.
In another terminal session, use ssh to list the files in your EV3’s home directory:
ssh ev3 ls
If connection sharing is working properly there should have been no prompt for your password and
the ssh command will have executed very quickly. As long as the initial ssh session is still running,
any new connections will share the existing connection. This even works with scp. For example,
to copy some_file.txt
from your host to the home directory on the EV3:
scp some_file.txt ev3: