Need help?

Here are some common questions on using this platform that we would like to answer.

# I get a permission denied when trying to SSH

Unfortunately SHA-2 RSA keys are not currently supported.

Unfortunately, due to a shortcoming in Go’s x/crypto/ssh package, we not currently support access via new SSH RSA keys: only the old SHA-1 ones will work. Until we sort this out you’ll either need an SHA-1 RSA key or a key with another algorithm, e.g. Ed25519. Not sure what type of keys you have? You can check with the following:

$ find ~/.ssh/id_*.pub -exec ssh-keygen -l -f {} \;

If you’re curious about the inner workings of this problem have a look at:

# Generating a new SSH key

Github reference

ssh-keygen -t ed25519 -C "your_email@example.com"
  1. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location.
  2. At the prompt, type a secure passphrase.

# Web optimized

When a user uploads an image, we immediately convert it to webp. Then we have an API that serves those web optimized images.

# How does imgs integrate with other pico services?

We allow any of our other services to upload images from those services to imgs. For example, if you want to upload images for prose.sh all you have to do is include your images in the rsync or scp command.

scp profile.jpg user@prose.sh:/

Then when you want to reference the file, you can reference it like so:

![profile pic](/profile.jpg)

# What file types are supported?

# Image manipulation

We have an API that allows users to resize images on-the-fly. Currently we only support downscaling.

[!profile](/profile/x500)     # auto scale width
[!profile](/profile/500x500)  # scale width and height
[!profile](/profile/500x)     # auto scale height

# How do I update a img?

Updating a img requires that you update the source document and then run the scp command again. If the filename remains the same, then the img will be updated.

# How do I delete a img?

Because scp does not natively support deleting files, I didn't want to bake that behavior into my ssh server.

However, if a user wants to delete a img they can delete the contents of the file and then upload it to our server. If the file contains 0 bytes, we will remove the img. For example, if you want to delete delete.jpg you could:

cp /dev/null delete.jpg
scp ./delete.jpg imgs.sh:/

Alternatively, you can go to ssh imgs.sh and select "Manage img." Then you can highlight the img you want to delete and then press "X." It will ask for confirmation before actually removing the img.

# Setup a custom domain

A blog can be accessed from a custom domain. HTTPS will be automatically enabled and a certificate will be retrieved from Let's Encrypt. In order for this to work, 2 DNS records need to be created:

CNAME for the domain to imgs (subdomains or DNS hosting with CNAME flattening) or A record

CNAME subdomain.yourcustomdomain.com -> imgs.sh

Resulting in:

subdomain.yourcustomdomain.com.         300     IN      CNAME   imgs.sh.

And a TXT record to tell Prose what blog is hosted on that domain at the subdomain entry _imgs

TXT _imgs.subdomain.yourcustomdomain.com -> yourusername

Resulting in:

_imgs.subdomain.yourcustomdomain.com.         300     IN      TXT     "hey"