How to create SSH fingerprint for Azure DevOps

3 minute read

Azure DevOps is a cloud-based platform provided by Microsoft that offers a set of development tools and services for software development teams. It provides a comprehensive set of features to plan, develop, test, and deliver applications efficiently. Azure DevOps integrates with popular development tools and provides a seamless end-to-end experience for managing the entire software development lifecycle.

The core components of Azure DevOps include:

  1. Azure Boards: This component provides agile project management capabilities, including work item tracking, backlog management, sprint planning, and reporting. It allows teams to plan, track, and discuss work across the entire development process.

  2. Azure Repos: Azure Repos is a version control system that supports both Git and Team Foundation Version Control (TFVC). It provides reliable and scalable repository management for source code, enabling collaboration, branching, merging, and pull request workflows.

  3. Azure Pipelines: Azure Pipelines is a powerful continuous integration and continuous delivery (CI/CD) platform. It allows teams to automate build, test, and deployment processes for applications across different platforms and environments. It supports a wide range of languages, platforms, and deployment targets.

  4. Azure Test Plans: This component provides comprehensive testing tools for manual and exploratory testing. It enables teams to plan, track, and manage test cases and provides rich reporting capabilities to measure test coverage and identify issues.

  5. Azure Artifacts: Azure Artifacts is a package management system that allows teams to create, host, and share NuGet, npm, and Maven packages within the organization. It provides a centralized location to manage and distribute dependencies and artifacts across the development pipeline.

On the other hand, SSH, which stands for Secure Shell, is a network protocol that provides a secure and encrypted way to access and manage remote systems over an unsecured network. It is commonly used for remote administration of servers, secure file transfers, and secure tunneling of network services.

Here are some key aspects of SSH:

  1. Secure Communication: SSH provides a secure channel over an insecure network by encrypting all the data exchanged between the client and the server. This ensures that sensitive information, such as login credentials and data transfers, is protected from eavesdropping and tampering.

  2. Authentication: SSH uses various methods for user authentication, including password-based authentication and public-key authentication. Public-key authentication is generally considered more secure and involves generating a key pair consisting of a private key (kept on the client) and a public key (uploaded to the server).

  3. Port Forwarding and Tunneling: SSH allows for port forwarding, also known as SSH tunneling, which enables the secure forwarding of network connections from a local computer to a remote server or vice versa. This feature is useful for accessing services on remote machines or bypassing firewall restrictions.

  4. Remote Shell Access: SSH provides a secure command-line interface (CLI) or shell access to remote systems. This allows system administrators and users to execute commands, manage files, and perform administrative tasks on remote servers as if they were directly interacting with the local machine.

  5. Secure File Transfer: SSH includes the Secure File Transfer Protocol (SFTP) and Secure Copy (SCP) utilities, which allow secure file transfers between the client and the server. These utilities provide encryption and integrity checks to ensure the confidentiality and integrity of transferred files.

Creating an SSH fingerprint and connecting to Azure DevOps or GitHub may appear straightforward at first, but occasionally, we encounter challenging issues. In this step-by-step guide, I will demonstrate the process of generating an SSH fingerprint for Azure DevOps and cloning a repository.

Step 1:Create SSH Keys

  • Create a folder if not exists - name .ssh in the following directory.
C:\Users\mahedee
  • Go to run and type: %userprofile%\.ssh

  • Run the powershell command in the following directory.

C:\Users\mahedee\.ssh
  • Run the follwing command on powershell.
ssh-keygen -C "test-git-dev-azure.com"

Step 2: Add the public key to Azure DevOps

  • Now go to the Azure DevOps web portal. Go to the avatar on the upper right corner. Select SSH public keys.

  • Select + New Key button on the upper right corner.

  • Copy the key from C:\Users\mahedee\.ssh\id_rsa.pub . The content of the id_rsa.pub file that you have already generated and pest the content on Public Key Data text box as belows.

  • Now click add button.

Step 3: Clone your repository

  • Now run powershell command and clone a repository using SSH as bellows.
git clone git@ssh.dev.azure.com:v3/yourorganization/yourrepository

Troubleshooting

Problem

After configuring SSH, I got the following error while tried to clone repository.

git clone git@ssh.dev.azure.com:v3/yourorganization/yourrepository

I was getting the following message:

git@ssh.dev.azure.com's password:

I have tried all using all sorts of password but failed.

Solution

  1. OpenSSH Authentication Agent was disabled on my PC. I started the service.

  1. SSH.exe was not added on environment varaible. I have added it on environment variable.

Then I tried to clone the repository and It was working fine.