Showing posts with label console. Show all posts
Showing posts with label console. Show all posts

Wednesday, March 20, 2019

Ubuntu: How to get passphrase-less / password-less SSH set up with GoDaddy

Step 1: Login to GoDaddy with your credentials.
Step 2: Click on "My Products", then click "Manage" on the website you wish to use SSH with.
Step 3: Click "Manage Hosting"








Step 4: Once on the Hosting page, click "Settings" on the website whose hosting you want to access via SSH.











Step 5: Click "cPanel Admin".  Now you're on the cPanel for your website's hosting. Click on "SSH Access", then "Manage SSH Keys".





Step 6: Delete any Public and Private keys that you may already have there.  Open a terminal window.  Navigate to your home directory, and then to the .ssh/ directory.
cd ~
cd .ssh

Step 7:  Once here, you may notice that there are already some files, such as id_rsa, id_rsa.pub and known_hosts.  If you wish to back them up, rename them.  Otherwise we will proceed to generate a new key pair (public and private), and overwrite the ones that already exist.
Type the command ssh-keygen -t rsa -b 4096 and press enter.  When prompted for the file name just press <enter> to use the default name (id_rsa), and if prompted to overwrite press y and then <enter>.  When prompted for a passphrase, just press <enter> twice, unless you want to enter in a pesky password every time you login to your hosting in addition to the public/private key pair.  You now have a public and private key pair which you will use to login to your GoDaddy hosting.



Step 8:  Now that you have your public/private key pair, it's time to provide them to GoDaddy so that you're able to login using SSH.  Under "SSH Access" (where we were before), click "Import Key".





Step 9: Type cat id_rsa to print your private key to your terminal window.  Copy it and paste it into the text box provided (shown below).  Leave the first textbox (name) empty, and the passphrase box empty.  Repeat the same process for id_rsa.pub, which is your private key.  Copy that into the last textbox on the page.  Click "Import" at the bottom of the page.


















Step 10: Important! Click "Back to Manage Keys", then under Public Keys, click "Manage", and then "Authorize".  If you don't authorize the key, you won't be able to login.


Step 11: Repeat steps 1-4 to get back onto the GoDaddy Hosting page for your domain.  You'll notice a section on the bottom right called "Settings".  Under that section you'll see "SSH access".  If it is turned off, you'll need to turn it on.  Upon turning it on, you'll be presented with the IP address and username that you'll need to log in using SSH.  Note these down.





















Step 11:  Open a new terminal window.  Type ssh myusername@<hosting_ip_address>.  Use the username and IP address you picked up in the previous step and press <enter>.  Enter yes when prompted about an unknown host.  And voila!  You're in!  Now you'll be able to access and manage your files from your Ubuntu terminal without ever being asked for a password again!

Monday, November 24, 2014

Serio: A serial file transfer program without needing z/y/xmodem

In one of my previous posts I talked about using zmodem as a backup/emergency method to transfer files onto an embedded device using the serial console.  This technique requires you to have the lrz binary on the target to initiate the transfer.  But what happens if you have no way of getting lrz onto the target in the first place?  In this post I show you a method of serial transfer requiring no binaries to be on the target, and absolutely no setup on the target-side.

First, check that you have a Python 2.x version installed.  If you don't, apt-get or yum install it onto your host OS.  Check the version with python --version.

Now get the utility, which is called 'serio'.  Get it with hg clone https://code.google.com/p/serio/. Before you go ahead, there are two patches you need to apply (by hand):

Patch 1:
Insert self.last_size = 0 at the location shown, highlighted in green:
if callable(fp.read) and callable(fp.write) and callable(fp.readline) and callable (fp.readlines):
                        self.fp = fp
                        self.current = 0
                        self.showprogress = progress

                        self.last_size = 0 


Patch 2:
Get rid of this line, on line 19:
self.s.open()

and insert these lines instead:
already_open = self.s.isOpen()
if not already_open:
        self.s.open()


Update (14 June 2015): I tried this again recently.  It seems you may need to use self.serial.isOpen() and self.serial.open() instead.

That patch above is for people who get the "Port is already open" error.  Now you can run the utility:


sudo ./serio -s lrz -d lrz -p /dev/ttyS0

where -s is the source file, -d is the destination, and -p is the serial (console) port.  You'll get a nice progress bar.



I recommend putting lrz onto your target (as per my example) so you can do zmodem transfers from here on in.


Help!  It transfers, but the executable doesn't work!
  • Check that the echo command on your target supports the "-n" and "-e" options (that's all you need).
  • Try cross-compiling a minimal "hello world" program with your toolchain and try transferring that, as a test.  Run it, and if you see "hello world" your settings are probably OK.  See the next point...
  • Open the source code and modify the parameter IO_TIME = .1 to be something greater than .1 (try .3 or .5).
  • In addition to the previous step, try using your toolchain's strip command to reduce the size of the binary.

Tuesday, October 21, 2014

Zmodem and minicom


Zmodem is a great "emergency backup" way of getting files on and off your target board when all other methods (SD card, ethernet, etc.) have stopped working or you don't have those functions yet.

In order to use Zmodem with Minicom, you need to first cross-compile the 'lrzsz' source code.


What happens if I can't get this file onto my target to begin with?   If this your situation, don't panic!  See my other serial transfers post.


Do a google search for lrzsz-0.12.20.tar.gz, untar it, and configure it with the following command:

CC=arm-linux-uclibc-gcc ./configure --host=arm-linux-uclibc --prefix=/home/andrew/lrzsz_out/

You'll obviously need to replace the CC, --host and --prefix with your own.  Then run:

make; make install

From all the binaries which are built, you're only going to need lrz (for receiving) and lsz (for sending).

If you want to receive a file (that is, get a file onto your target board), you first run the ./lrz binary from anywhere on the target's filesystem, and you'll get a message 'waiting to receive' (along with some ascii garble).


Then you press ctrl+a+z and then s , and then choose 'zmodem'.








After you select 'zmodem' and choose your file from the file browser, you'll see the file uploading to your target, with an ETA (time left).


Sending works similarly, except you use the ./lsz binary and select "receive" from the minicom menu instead.