In this article, I will show you how to install and configure SSH server on Debian 9 Stretch for remote login. Let’s get started. Installing SSH Server: First update the apt package repository cache of your Debian operating system with the following command: $ sudo apt-get update. Ssh-keygen: It is used to create a key pair for establishing a connection and public key authentication. Ssh-copy-id: It is used to configure a public key as a valid user on a server. Ssh-agent: It is used to create an agent to hold private key for single sign-on. Installing SSH On The Server. First, we install the SSH on our server. We can do that with this command: (Note that you must be root to do that!) apt-get install ssh. Preparations On Our Client (Desktop) System. Second, we take some preparations on our desktop machine. This PC will be used to connect the server. Create folder, file, install Apache (Just messing around) $ mkdir test $ cd test $ touch hello.txt $ sudo apt-get install apache2. Generate Keys (Local Machine) $ ssh-keygen. Add Key to server in one command cat /.ssh/idrsa.pub ssh [email protected] 'mkdir -p /.ssh && chmod 700 /.ssh && cat /.ssh/authorizedkeys.
-->Throughout the lifecycle of your Azure Kubernetes Service (AKS) cluster, you may need to access an AKS node. This access could be for maintenance, log collection, or other troubleshooting operations. You can access AKS nodes using SSH, including Windows Server nodes. You can also connect to Windows Server nodes using remote desktop protocol (RDP) connections. For security purposes, the AKS nodes aren't exposed to the internet. To SSH to the AKS nodes, you use the private IP address.
This article shows you how to create an SSH connection with an AKS node using their private IP addresses.
Before you begin
This article assumes that you have an existing AKS cluster. If you need an AKS cluster, see the AKS quickstart using the Azure CLI or using the Azure portal.
By default, SSH keys are obtained, or generated, then added to nodes when you create an AKS cluster. This article shows you how to specify different SSH keys than the SSH keys used when you created your AKS cluster. The article also shows you how to determine the private IP address of your node and connect to it using SSH. If you don't need to specify a different SSH key, then you may skip the step for adding the SSH public key to the node.
This article also assumes you have an SSH key. You can create an SSH key using macOS or Linux or Windows. If you use PuTTY Gen to create the key pair, save the key pair in an OpenSSH format rather than the default PuTTy private key format (.ppk file).
You also need the Azure CLI version 2.0.64 or later installed and configured. Run
az --version
to find the version. If you need to install or upgrade, see Install Azure CLI.Configure virtual machine scale set-based AKS clusters for SSH access
To configure your virtual machine scale set-based for SSH access, find the name of your cluster's virtual machine scale set and add your SSH public key to that scale set.
Use the az aks show command to get the resource group name of your AKS cluster, then the az vmss list command to get the name of your scale set.
The above example assigns the name of the cluster resource group for the myAKSCluster in myResourceGroup to CLUSTER_RESOURCE_GROUP. The example then uses CLUSTER_RESOURCE_GROUP to list the scale set name and assign it to SCALE_SET_NAME.
Important
At this time, you should only update your SSH keys for your virtual machine scale set-based AKS clusters using the Azure CLI.
Cs go bot profile. For Linux nodes, SSH keys can currently only be added using the Azure CLI. If you want to connect to a Windows Server node using SSH, use the SSH keys provided when you created the AKS cluster and skip the next set of commands for adding your SSH public key. You will still need the IP address of the node you wish to troubleshoot, which is shown in the final command of this section. Alternatively, you can connect to Windows Server nodes using remote desktop protocol (RDP) connections instead of using SSH.
Apt-get Install Ssh-keygen
To add your SSH keys to the nodes in a virtual machine scale set, use the az vmss extension set and az vmss update-instances commands.
The above example uses the CLUSTER_RESOURCE_GROUP and SCALE_SET_NAME variables from the previous commands. The above example also uses ~/.ssh/id_rsa.pub as the location for your SSH public key.
Note
By default, the username for the AKS nodes is azureuser.
After you add your SSH public key to the scale set, you can SSH into a node virtual machine in that scale set using its IP address. View the private IP addresses of the AKS cluster nodes using the kubectl get command.
The follow example output shows the internal IP addresses of all the nodes in the cluster, including a Windows Server node.
Record the internal IP address of the node you wish to troubleshoot.
To access your node using SSH, follow the steps in Create the SSH connection.
Configure virtual machine availability set-based AKS clusters for SSH access
To configure your virtual machine availability set-based AKS cluster for SSH access, find the name of your cluster's Linux node, and add your SSH public key to that node.
Use the az aks show command to get the resource group name of your AKS cluster, then the az vm list command to list the virtual machine name of your cluster's Linux node.
The above example assigns the name of the cluster resource group for the myAKSCluster in myResourceGroup to CLUSTER_RESOURCE_GROUP. The example then uses CLUSTER_RESOURCE_GROUP to list the virtual machine name. The example output shows the name of the virtual machine:
To add your SSH keys to the node, use the az vm user update command.
The above example uses the CLUSTER_RESOURCE_GROUP variable and the node virtual machine name from previous commands. The above example also uses ~/.ssh/id_rsa.pub as the location for your SSH public key. You could also use the contents of your SSH public key instead of specifying a path.
Note
By default, the username for the AKS nodes is azureuser.
After you add your SSH public key to the node virtual machine, you can SSH into that virtual machine using its IP address. View the private IP address of an AKS cluster node using the az vm list-ip-addresses command.
The above example uses the CLUSTER_RESOURCE_GROUP variable set in the previous commands. The following example output shows the private IP addresses of the AKS nodes:
Create the SSH connection
To create an SSH connection to an AKS node, you run a helper pod in your AKS cluster. This helper pod provides you with SSH access into the cluster and then additional SSH node access. To create and use this helper pod, complete the following steps:
- Run a
debian
container image and attach a terminal session to it. This container can be used to create an SSH session with any node in the AKS cluster:TipIf you use Windows Server nodes, add a node selector to the command to schedule the Debian container on a Linux node: - Once the terminal session is connected to the container, install an SSH client using
apt-get
: - Open a new terminal window, not connected to your container, copy your private SSH key into the helper pod. This private key is used to create the SSH into the AKS node.If needed, change ~/.ssh/id_rsa to location of your private SSH key:
- Return to the terminal session to your container, update the permissions on the copied
id_rsa
private SSH key so that it is user read-only: - Create an SSH connection to your AKS node. Again, the default username for AKS nodes is azureuser. Accept the prompt to continue with the connection as the SSH key is first trusted. You are then provided with the bash prompt of your AKS node:
Remove SSH access
When done,
exit
the SSH session and then exit
the interactive container session. When this container session closes, the pod used for SSH access from the AKS cluster is deleted.Next steps
Ssh Keygen Windows
If you need additional troubleshooting data, you can view the kubelet logs or view the Kubernetes master node logs.