Thursday, January 16, 2025

git@github.com: Permission denied (publickey)

 Error when cloning git after adding SSH key. Below is the error

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.


Fix :


First make sure you have added SSH key correctly. On right hand side of top corner under profile, you can see settings. In setting click on SSH and GPG keys and add your key as authentication keys.


Then login to the server or desktop from where you generated the key or have its private key, 

eval `ssh-agent -s`

ssh-add ~/.ssh/id_rsa


Wait for some time and try git clone, it will work.

Saturday, January 11, 2025

OCI Instance Principals Authentication


OCI Instance Principals Authentication

In OCI, one of the authentication mechanism is using "Instance Principals". Here we don't need to use a key to execute OCI CLI commands, instead of key we are allowing OCI Compute instance the permission to execute CLI commands.

In this video you can see the steps.

1. Get the OCID of the compute instance
2. Create a Dynamic group
3. Create a Policy
4. Validate the setup
5. Execute your CLI commands {oci os object put --bucket-name backup-bucket --file sc_laundry_db-202412181734507003.sql --auth instance_principal}

Few Links for further read

Saturday, October 26, 2024

how to install letsencrypt on oracle linux 8

 how to install letsencrypt on oracle linux 8

1. Login to the server as root

2. dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

3. dnf install certbot python3-certbot-apache

4. certbot --apache

Saturday, August 17, 2024

Errors during downloading metadata for repository 'appstream': - Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]

 Error while installing a package in CentOS 8

Errors during downloading metadata for repository 'appstream':   - Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]

How to fix?

1. Login to the server

2. cd /etc/yum.repos.d/

3. sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

4. sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

5. yum install <package>

It works!

Thursday, May 23, 2024

SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

 Error on Oracle linux9

After installing Letsencrypt, i am getting this error "SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty" when trying to execute certbot --apache

How to fix :

systemctl restart httpd

After this, you can successfully execute the command certbot --apache and the issue if solved.

Wednesday, May 22, 2024

How to mount an OCI Object Storage Bucket as File System on Linux

I am trying to mount OCI Object Storage bucket as a file system in one of my application server. It will helps me a lot to take backups and in automation I can point this OCI bucket as the destination of scripts output. As OCI object storage is S3 compatible, I am here using S3fs-fuse utility to mount the bucket.

OS : Oracle Linux 9

As a pre-request, please make sure that the compartment you are trying to mount the object storage is S3 compatible.

Go to "Governance & Administration --> Tenancy Details --> Edit object storage settings"


Now follow the below steps.

Step 1 : SSH to your application server

Step 2 : dnf update -y

Step 3 : vi /etc/yum.repos.d/oracle-epel-ol9.repo

Step 4 : Update "enabled=0" to "enabled=1" and save the file

Step 5 : yum install s3fs-fuse -y

Step 6 : Login to OCI console and generate your "Access key" and "Secret key" (keep it safe with you)

Step 7 : SSH to application server

Step 8 : vi /home/opc/.passwd-s3fs

Step 9 : Input your Access key id : Secret key id (Both in one line with a colon separated)

Step 10 : chmod 600 /home/opc/.passwd-s3fs

Step 11 : Create bucket in your OCI account (My bucket name is skynet-upload-bucket)

Step 12 : Identify your OCI region identifier (https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm)

Step 13 : Identify your object storage namespace ("Governance & Administration --> Tenancy Details -->Object storage namespace")

Step 14 : Location of your local path folder in application server (mkdir -p /home/opc/mybucket)

Step 15 : sudo s3fs {oci bucket name} {local path folder} -o endpoint={oci region identifier} -o passwd_file=.passwd-s3fs -o url=https://{object storage namespace}.compat.objectstorage.{oci region idnetifier}.oraclecloud.com/ -onomultipart -o use_path_request_style -o allow_other

Step 16 : Check your mount point (mount | grep s3fs), seems all good.

Step 17 : Now we can test. touch /home/opc/mybucket/testfile.txt

Step 18 : Go to OCI buket (skynet-upload-bucket) and check whether you can see it

Step 19 : Remove the mount point # sudo fusermount -u /home/opc/mybucket

Youtube video about this post : https://youtu.be/QJ6GBPo8F2M



Monday, May 13, 2024

jupyterhub spawn failed server at http //127.0.0.1

 How to fix jupyterhub spawn failed server at http //127.0.0.1

In my VM, I am using docker to run Jupyter.

How to fix this issue?

1. Login to your Jupyter hub docker container - docker exec -it jupyterhub bash
2. Install notebook - pip install notebook

Try to reload again, it works.