19 Working with the VM
19.1 Connecting to the VM via SSH
Once the VM is running anywhere on your machine, you can connect to it from a separate terminal via SSH as follows:
ssh -p 6422 carya@localhost
You will be prompted for a password. Like everywhere else in PEcAn, the username is carya
and the password is illinois
. The same password is used for any system maintenance you wish to do on the VM via sudo
.
As a shortcut, you can add the following to your ~/.ssh/config
file (or create one if it does not exist).
Host pecan-vm
Hostname localhost
Port 6422
user carya
ForwardX11Trusted yes
This will allow you to SSH into the VM with the simplified command, ssh pecan-vm
.
19.2 Connecting to bety on the VM via SSh
Sometimes, you may want to develop code locally but connect to an instance of Bety on the VM. To do this, first open a new terminal and connect to the VM while enabling port forwarding (with the -L
flag) and setting XXXX to any available port (more or less any 4 digit number – a reasonable choice is 3333).
ssh -L XXXX:localhost:5432 carya@localhost:6422
This makes port XXXX on the local machine match port 5432 on the VM. This means that connecting to localhost:XXXX
will give you access to Bety on the VM.
To test this on the command line, try the following command, which, if successful, will drop you into the psql
console.
psql -d bety -U bety -h localhost -p XXXX
To test this in R, open a Postgres using the analogous parameters:
library(RPostgres)
con <- dbConnect(
Postgres(),
user = "bety",
password = "bety",
dbname = "bety",
host = "localhost",
port = XXXX
)
dbListTables(con) # This should return a vector of bety tables
Note that the same general approach will work on any Bety server where port forwarding is enabled.