[{"data":1,"prerenderedAt":960},["ShallowReactive",2],{"/knowledge-base/ssh-recipe":3,"/knowledge-base/ssh-recipe-surround":951},{"id":4,"title":5,"body":6,"category":932,"contentType":933,"date":934,"description":935,"extension":936,"head":937,"image":938,"meta":939,"navigation":940,"ogImage":937,"path":941,"readingTime":942,"robots":937,"schemaOrg":937,"seo":943,"sitemap":944,"stem":945,"tags":946,"__hash__":950},"knowledgeBase/knowledge-base/ssh-recipe.md","SSH CookBook",{"type":7,"value":8,"toc":910},"minimark",[9,14,18,36,39,60,63,69,76,79,84,89,92,100,105,108,113,118,121,125,132,151,153,170,173,177,182,193,199,205,208,221,224,227,239,241,245,283,285,289,311,313,317,320,333,340,355,358,370,373,376,378,382,385,390,397,400,402,406,410,426,430,465,469,491,493,511,515,520,523,532,534,547,550,555,557,561,568,582,584,588,592,595,607,612,618,621,633,635,639,642,647,687,691,701,704,734,737,791,794,804,808,810,825,832,835,849,852,858,861,864,893,896,906],[10,11,13],"h2",{"id":12},"generating-keys","GENERATING KEYS",[15,16,17],"p",{},"To generate an RSA key pair on your local computer, type:",[19,20,25],"pre",{"className":21,"code":22,"language":23,"meta":24,"style":24},"language-bash shiki shiki-themes github-light github-dark github-dark","ssh-keygen\n","bash","",[26,27,28],"code",{"__ignoreMap":24},[29,30,33],"span",{"class":31,"line":32},"line",1,[29,34,22],{"class":35},"shcOC",[15,37,38],{},"OR",[19,40,42],{"className":21,"code":41,"language":23,"meta":24,"style":24},"ssh-keygen -b 4096   # For longer key (4096 bits)\n",[26,43,44],{"__ignoreMap":24},[29,45,46,49,53,56],{"class":31,"line":32},[29,47,48],{"class":35},"ssh-keygen",[29,50,52],{"class":51},"suiK_"," -b",[29,54,55],{"class":51}," 4096",[29,57,59],{"class":58},"sCsY4","   # For longer key (4096 bits)\n",[15,61,62],{},"You will see:",[64,65,66],"blockquote",{},[15,67,68],{},"\"Generating public/private rsa key pair.\nEnter file in which to save the key (/home/demo/.ssh/id_rsa):\"",[15,70,71,72,75],{},"This prompt allows you to choose the location to store your RSA private key. Press ENTER to leave this as the default, which will store them in the ",[26,73,74],{},".ssh"," hidden directory in your user’s home directory.",[15,77,78],{},"Next, you'll be prompted to add a passphrase:",[64,80,81],{},[15,82,83],{},"\"Enter passphrase (empty for no passphrase):\"\n\"Enter same passphrase again:\"",[64,85,86],{},[15,87,88],{},"⚠️  Setting a passphrase adds extra security. Without it, anyone with your private key can access your servers.",[15,90,91],{},"SSH key pair files generated:",[19,93,98],{"className":94,"code":96,"language":97},[95],"language-text","~/.ssh/id_rsa       → Private key (DO NOT SHARE)\n~/.ssh/id_rsa.pub   → Public key (can be shared)\n","text",[26,99,96],{"__ignoreMap":24},[101,102,104],"h3",{"id":103},"overwrite-warning","OVERWRITE WARNING",[15,106,107],{},"If a key already exists, you will see:",[64,109,110],{},[15,111,112],{},"\"Overwrite (y/n)?\"",[64,114,115],{},[15,116,117],{},"Choose 'y' only if you're sure. Overwriting removes access to all servers using the old key!",[119,120],"hr",{},[10,122,124],{"id":123},"transferring-public-key-to-server","TRANSFERRING PUBLIC KEY TO SERVER",[15,126,127,128,131],{},"Use ",[26,129,130],{},"ssh-copy-id"," to add your public key to the remote server:",[19,133,135],{"className":21,"code":134,"language":23,"meta":24,"style":24},"ssh-copy-id -i ~/.ssh/id_rsa.pub remoteUser@ServerIP\n",[26,136,137],{"__ignoreMap":24},[29,138,139,141,144,148],{"class":31,"line":32},[29,140,130],{"class":35},[29,142,143],{"class":51}," -i",[29,145,147],{"class":146},"sfrk1"," ~/.ssh/id_rsa.pub",[29,149,150],{"class":146}," remoteUser@ServerIP\n",[15,152,38],{},[19,154,156],{"className":21,"code":155,"language":23,"meta":24,"style":24},"ssh-copy-id -i path/to/public/key remoteServerUser@ServerIP\n",[26,157,158],{"__ignoreMap":24},[29,159,160,162,164,167],{"class":31,"line":32},[29,161,130],{"class":35},[29,163,143],{"class":51},[29,165,166],{"class":146}," path/to/public/key",[29,168,169],{"class":146}," remoteServerUser@ServerIP\n",[15,171,172],{},"This will add the public key to the remote server.",[101,174,176],{"id":175},"a-prompt-that-should-appear-only-once","A prompt THAT SHOULD APPEAR ONLY ONCE:",[64,178,179],{},[15,180,181],{},"\"The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.\"\n\"ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.\"\n\"Are you sure you want to continue connecting (yes/no)? yes\"\n\"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed\"\n\"/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys\"\n\"demo@111.111.11.111's password:\"",[15,183,184,185,188,189,192],{},"After typing in the password, the contents of your ",[26,186,187],{},"~/.ssh/id_rsa.pub"," key will be appended to the end of the user account’s ",[26,190,191],{},"~/.ssh/authorized_keys"," file:",[15,194,195],{},[196,197,198],"strong",{},"Output:",[19,200,203],{"className":201,"code":202,"language":97},[95],"Number of key(s) added: 1\n",[26,204,202],{"__ignoreMap":24},[15,206,207],{},"Now try logging into the machine, with:",[19,209,211],{"className":21,"code":210,"language":23,"meta":24,"style":24},"ssh demo@111.111.11.111\n",[26,212,213],{"__ignoreMap":24},[29,214,215,218],{"class":31,"line":32},[29,216,217],{"class":35},"ssh",[29,219,220],{"class":146}," demo@111.111.11.111\n",[15,222,223],{},"and check to make sure that only the key(s) you wanted were added.",[15,225,226],{},"You can now log in to that account without a password:",[19,228,230],{"className":21,"code":229,"language":23,"meta":24,"style":24},"ssh username@remote_host\n",[26,231,232],{"__ignoreMap":24},[29,233,234,236],{"class":31,"line":32},[29,235,217],{"class":35},[29,237,238],{"class":146}," username@remote_host\n",[119,240],{},[10,242,244],{"id":243},"permissions-to-be-set-on-the-local-host","Permissions To be Set On the Local HOST",[19,246,248],{"className":21,"code":247,"language":23,"meta":24,"style":24},"chmod 600 /path/to/PRIVATEKEY\nchmod 644 /path/to/publickey\nchmod 700 ~/.ssh\n",[26,249,250,261,272],{"__ignoreMap":24},[29,251,252,255,258],{"class":31,"line":32},[29,253,254],{"class":35},"chmod",[29,256,257],{"class":51}," 600",[29,259,260],{"class":146}," /path/to/PRIVATEKEY\n",[29,262,264,266,269],{"class":31,"line":263},2,[29,265,254],{"class":35},[29,267,268],{"class":51}," 644",[29,270,271],{"class":146}," /path/to/publickey\n",[29,273,275,277,280],{"class":31,"line":274},3,[29,276,254],{"class":35},[29,278,279],{"class":51}," 700",[29,281,282],{"class":146}," ~/.ssh\n",[119,284],{},[10,286,288],{"id":287},"permissions-to-be-set-on-the-remote-host","Permissions To be Set on the Remote HOST",[19,290,292],{"className":21,"code":291,"language":23,"meta":24,"style":24},"chmod 700 ~/.ssh\nchmod 600 ~/.ssh/authorized_keys\n",[26,293,294,302],{"__ignoreMap":24},[29,295,296,298,300],{"class":31,"line":32},[29,297,254],{"class":35},[29,299,279],{"class":51},[29,301,282],{"class":146},[29,303,304,306,308],{"class":31,"line":263},[29,305,254],{"class":35},[29,307,257],{"class":51},[29,309,310],{"class":146}," ~/.ssh/authorized_keys\n",[119,312],{},[10,314,316],{"id":315},"copying-the-key-manually","Copying The Key manually",[15,318,319],{},"Copy the public key:",[19,321,323],{"className":21,"code":322,"language":23,"meta":24,"style":24},"cat ~/.ssh/id_rsa.pub\n",[26,324,325],{"__ignoreMap":24},[29,326,327,330],{"class":31,"line":32},[29,328,329],{"class":35},"cat",[29,331,332],{"class":146}," ~/.ssh/id_rsa.pub\n",[15,334,335,336,339],{},"On the remote server, create the ",[26,337,338],{},"~/.ssh"," directory if it does not already exist:",[19,341,343],{"className":21,"code":342,"language":23,"meta":24,"style":24},"mkdir -p ~/.ssh\n",[26,344,345],{"__ignoreMap":24},[29,346,347,350,353],{"class":31,"line":32},[29,348,349],{"class":35},"mkdir",[29,351,352],{"class":51}," -p",[29,354,282],{"class":146},[15,356,357],{},"Go to:",[19,359,361],{"className":21,"code":360,"language":23,"meta":24,"style":24},"nano ~/.ssh/authorized_keys\n",[26,362,363],{"__ignoreMap":24},[29,364,365,368],{"class":31,"line":32},[29,366,367],{"class":35},"nano",[29,369,310],{"class":146},[15,371,372],{},"And paste the public key.",[15,374,375],{},"You should now be able to log in to the remote server without a password.",[119,377],{},[10,379,381],{"id":380},"first-time-connecting-to-a-new-host","First Time Connecting to a New Host",[15,383,384],{},"Your first time connecting to a new host, you will see a message that looks like this:",[64,386,387],{},[15,388,389],{},"\"The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.\"\n\"ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.\"\n\"Are you sure you want to continue connecting (yes/no)? yes\"",[15,391,392,393,396],{},"Type ",[26,394,395],{},"yes"," to accept the authenticity of the remote host.",[15,398,399],{},"If you are using password authentication, you will be prompted for the password for the remote account here. If you are using SSH keys, you will be prompted for your private key’s passphrase if one is set, otherwise you will be logged in automatically.",[119,401],{},[10,403,405],{"id":404},"useful-commands","Useful commands",[101,407,409],{"id":408},"logging-in-to-a-server-with-a-different-port","Logging in to a Server with a Different Port",[19,411,413],{"className":21,"code":412,"language":23,"meta":24,"style":24},"ssh -p port_num username@remote_host\n",[26,414,415],{"__ignoreMap":24},[29,416,417,419,421,424],{"class":31,"line":32},[29,418,217],{"class":35},[29,420,352],{"class":51},[29,422,423],{"class":146}," port_num",[29,425,238],{"class":146},[101,427,429],{"id":428},"viewing-logs","Viewing Logs",[19,431,433],{"className":21,"code":432,"language":23,"meta":24,"style":24},"sudo tail -n 10 -f /var/log/auth.log\ngrep sshd /var/log/auth.log\n",[26,434,435,455],{"__ignoreMap":24},[29,436,437,440,443,446,449,452],{"class":31,"line":32},[29,438,439],{"class":35},"sudo",[29,441,442],{"class":146}," tail",[29,444,445],{"class":51}," -n",[29,447,448],{"class":51}," 10",[29,450,451],{"class":51}," -f",[29,453,454],{"class":146}," /var/log/auth.log\n",[29,456,457,460,463],{"class":31,"line":263},[29,458,459],{"class":35},"grep",[29,461,462],{"class":146}," sshd",[29,464,454],{"class":146},[101,466,468],{"id":467},"adding-your-ssh-keys-to-an-ssh-agent-to-avoid-typing-the-passphrase","Adding your SSH Keys to an SSH Agent to Avoid Typing the Passphrase",[19,470,472],{"className":21,"code":471,"language":23,"meta":24,"style":24},"eval \"$(ssh-agent -s)\"\n",[26,473,474],{"__ignoreMap":24},[29,475,476,479,482,485,488],{"class":31,"line":32},[29,477,478],{"class":51},"eval",[29,480,481],{"class":146}," \"$(",[29,483,484],{"class":35},"ssh-agent",[29,486,487],{"class":51}," -s",[29,489,490],{"class":146},")\"\n",[15,492,38],{},[19,494,496],{"className":21,"code":495,"language":23,"meta":24,"style":24},"eval $(ssh-agent)\n",[26,497,498],{"__ignoreMap":24},[29,499,500,502,506,508],{"class":31,"line":32},[29,501,478],{"class":51},[29,503,505],{"class":504},"slsVL"," $(",[29,507,484],{"class":35},[29,509,510],{"class":504},")\n",[15,512,513],{},[196,514,198],{},[64,516,517],{},[15,518,519],{},"\"Agent pid 10891\"",[15,521,522],{},"This will start the agent program and place it into the background. Now, you need to add your private key to the agent, so that it can manage your key:",[19,524,526],{"className":21,"code":525,"language":23,"meta":24,"style":24},"ssh-add\n",[26,527,528],{"__ignoreMap":24},[29,529,530],{"class":31,"line":32},[29,531,525],{"class":35},[15,533,38],{},[19,535,537],{"className":21,"code":536,"language":23,"meta":24,"style":24},"ssh-add /path/to/privatekey\n",[26,538,539],{"__ignoreMap":24},[29,540,541,544],{"class":31,"line":32},[29,542,543],{"class":35},"ssh-add",[29,545,546],{"class":146}," /path/to/privatekey\n",[15,548,549],{},"You will have to enter your passphrase (if one is set). Afterwards, your identity file is added to the agent, allowing you to use your key to sign in without having to re-enter the passphrase again.",[64,551,552],{},[15,553,554],{},"\"Enter passphrase for /home/demo/.ssh/id_rsa:\"\n\"Identity added: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)\"",[119,556],{},[10,558,560],{"id":559},"agent-forwarding-for-multiple-hops","Agent Forwarding for Multiple Hops",[15,562,563,564,567],{},"To start, you must have your SSH agent started and your SSH key added to the agent (see earlier). After this is done, you need to connect to your first server using the ",[26,565,566],{},"-A"," option. This forwards your credentials to the server for this session:",[19,569,571],{"className":21,"code":570,"language":23,"meta":24,"style":24},"ssh -A username@remote_host\n",[26,572,573],{"__ignoreMap":24},[29,574,575,577,580],{"class":31,"line":32},[29,576,217],{"class":35},[29,578,579],{"class":51}," -A",[29,581,238],{"class":146},[119,583],{},[10,585,587],{"id":586},"server-side-client-side-configuration-options","Server-Side & Client-Side Configuration Options",[101,589,591],{"id":590},"client-side","Client Side",[15,593,594],{},"To edit the SSH client configuration:",[19,596,598],{"className":21,"code":597,"language":23,"meta":24,"style":24},"nano ~/.ssh/config\n",[26,599,600],{"__ignoreMap":24},[29,601,602,604],{"class":31,"line":32},[29,603,367],{"class":35},[29,605,606],{"class":146}," ~/.ssh/config\n",[15,608,609],{},[196,610,611],{},"Options:",[19,613,616],{"className":614,"code":615,"language":97},[95],"Host RemoteServerName\n    HostName RemoteServerIp\n    Port 22                       # Port of the remote server\n    User TheUsername              # The username on the remote server\n    IdentityFile /path/to/PRIVATEKEY\n    ServerAliveInterval 120       # Keep connection alive for 120s\n",[26,617,615],{"__ignoreMap":24},[15,619,620],{},"After done, you can simply connect to the remote server like so:",[19,622,624],{"className":21,"code":623,"language":23,"meta":24,"style":24},"ssh RemoteServerName\n",[26,625,626],{"__ignoreMap":24},[29,627,628,630],{"class":31,"line":32},[29,629,217],{"class":35},[29,631,632],{"class":146}," RemoteServerName\n",[119,634],{},[101,636,638],{"id":637},"server-side","Server Side",[15,640,641],{},"This is essential for security and convenience. The configuration file applies globally to all users under the remote server, but it's better to start with the following steps:",[643,644,646],"h4",{"id":645},"_1-create-a-new-user-under-the-sudo-group","1. Create a New User under the sudo Group",[19,648,650],{"className":21,"code":649,"language":23,"meta":24,"style":24},"sudo adduser NewUserName\nsudo usermod -aG sudo NewUserName\nsu - NewUserName\n",[26,651,652,662,677],{"__ignoreMap":24},[29,653,654,656,659],{"class":31,"line":32},[29,655,439],{"class":35},[29,657,658],{"class":146}," adduser",[29,660,661],{"class":146}," NewUserName\n",[29,663,664,666,669,672,675],{"class":31,"line":263},[29,665,439],{"class":35},[29,667,668],{"class":146}," usermod",[29,670,671],{"class":51}," -aG",[29,673,674],{"class":146}," sudo",[29,676,661],{"class":146},[29,678,679,682,685],{"class":31,"line":274},[29,680,681],{"class":35},"su",[29,683,684],{"class":146}," -",[29,686,661],{"class":146},[643,688,690],{"id":689},"_2-check-for-the-public-key-existence-for-the-new-user","2. Check for the public key existence for the new user",[19,692,693],{"className":21,"code":360,"language":23,"meta":24,"style":24},[26,694,695],{"__ignoreMap":24},[29,696,697,699],{"class":31,"line":32},[29,698,367],{"class":35},[29,700,310],{"class":146},[15,702,703],{},"If none, create the directory and copy the public key from the root user:",[19,705,707],{"className":21,"code":706,"language":23,"meta":24,"style":24},"sudo mkdir -p /home/NewUserName/.ssh\nsudo cp /root/.ssh/authorized_keys /home/NewUserName/.ssh/\n",[26,708,709,721],{"__ignoreMap":24},[29,710,711,713,716,718],{"class":31,"line":32},[29,712,439],{"class":35},[29,714,715],{"class":146}," mkdir",[29,717,352],{"class":51},[29,719,720],{"class":146}," /home/NewUserName/.ssh\n",[29,722,723,725,728,731],{"class":31,"line":263},[29,724,439],{"class":35},[29,726,727],{"class":146}," cp",[29,729,730],{"class":146}," /root/.ssh/authorized_keys",[29,732,733],{"class":146}," /home/NewUserName/.ssh/\n",[15,735,736],{},"Set ownership and permissions:",[19,738,740],{"className":21,"code":739,"language":23,"meta":24,"style":24},"sudo chown -R NewUserName:NewUserName /home/NewUserName/.ssh\nsudo chmod 700 /home/NewUserName/.ssh\nsudo chmod 600 /home/NewUserName/.ssh/authorized_keys\nchown -R NewUserName:NewUserName ~/.ssh\n",[26,741,742,757,768,779],{"__ignoreMap":24},[29,743,744,746,749,752,755],{"class":31,"line":32},[29,745,439],{"class":35},[29,747,748],{"class":146}," chown",[29,750,751],{"class":51}," -R",[29,753,754],{"class":146}," NewUserName:NewUserName",[29,756,720],{"class":146},[29,758,759,761,764,766],{"class":31,"line":263},[29,760,439],{"class":35},[29,762,763],{"class":146}," chmod",[29,765,279],{"class":51},[29,767,720],{"class":146},[29,769,770,772,774,776],{"class":31,"line":274},[29,771,439],{"class":35},[29,773,763],{"class":146},[29,775,257],{"class":51},[29,777,778],{"class":146}," /home/NewUserName/.ssh/authorized_keys\n",[29,780,782,785,787,789],{"class":31,"line":781},4,[29,783,784],{"class":35},"chown",[29,786,751],{"class":51},[29,788,754],{"class":146},[29,790,282],{"class":146},[15,792,793],{},"Check again and paste manually if it doesn't exist:",[19,795,796],{"className":21,"code":360,"language":23,"meta":24,"style":24},[26,797,798],{"__ignoreMap":24},[29,799,800,802],{"class":31,"line":32},[29,801,367],{"class":35},[29,803,310],{"class":146},[643,805,807],{"id":806},"_3-server-side-ssh-daemon-configuration","3. Server-Side SSH Daemon Configuration",[15,809,357],{},[19,811,813],{"className":21,"code":812,"language":23,"meta":24,"style":24},"sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf\n",[26,814,815],{"__ignoreMap":24},[29,816,817,819,822],{"class":31,"line":32},[29,818,439],{"class":35},[29,820,821],{"class":146}," nano",[29,823,824],{"class":146}," /etc/ssh/sshd_config.d/50-cloud-init.conf\n",[15,826,827,828,831],{},"And set ",[26,829,830],{},"PasswordAuthentication no",".",[15,833,834],{},"Then go to:",[19,836,838],{"className":21,"code":837,"language":23,"meta":24,"style":24},"sudo nano /etc/ssh/sshd_config\n",[26,839,840],{"__ignoreMap":24},[29,841,842,844,846],{"class":31,"line":32},[29,843,439],{"class":35},[29,845,821],{"class":146},[29,847,848],{"class":146}," /etc/ssh/sshd_config\n",[15,850,851],{},"Uncomment and set the following:",[19,853,856],{"className":854,"code":855,"language":97},[95],"Port 22                  # or a different one\nListenAddress RemoteServerIp\nPermitRootLogin no       # Disable root login\nAllowUsers NewUserName@LocalHostIP\nPubkeyAuthentication yes\nPasswordAuthentication no\n",[26,857,855],{"__ignoreMap":24},[15,859,860],{},"Save and exit (Ctrl+O, Enter, Ctrl+X).",[15,862,863],{},"After all is set, restart and check status of the SSH service:",[19,865,867],{"className":21,"code":866,"language":23,"meta":24,"style":24},"sudo systemctl restart ssh\nsudo systemctl status ssh\n",[26,868,869,882],{"__ignoreMap":24},[29,870,871,873,876,879],{"class":31,"line":32},[29,872,439],{"class":35},[29,874,875],{"class":146}," systemctl",[29,877,878],{"class":146}," restart",[29,880,881],{"class":146}," ssh\n",[29,883,884,886,888,891],{"class":31,"line":263},[29,885,439],{"class":35},[29,887,875],{"class":146},[29,889,890],{"class":146}," status",[29,892,881],{"class":146},[15,894,895],{},"Try and login to the remote server:",[19,897,898],{"className":21,"code":623,"language":23,"meta":24,"style":24},[26,899,900],{"__ignoreMap":24},[29,901,902,904],{"class":31,"line":32},[29,903,217],{"class":35},[29,905,632],{"class":146},[907,908,909],"style",{},"html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}",{"title":24,"searchDepth":263,"depth":263,"links":911},[912,915,918,919,920,921,922,927,928],{"id":12,"depth":263,"text":13,"children":913},[914],{"id":103,"depth":274,"text":104},{"id":123,"depth":263,"text":124,"children":916},[917],{"id":175,"depth":274,"text":176},{"id":243,"depth":263,"text":244},{"id":287,"depth":263,"text":288},{"id":315,"depth":263,"text":316},{"id":380,"depth":263,"text":381},{"id":404,"depth":263,"text":405,"children":923},[924,925,926],{"id":408,"depth":274,"text":409},{"id":428,"depth":274,"text":429},{"id":467,"depth":274,"text":468},{"id":559,"depth":263,"text":560},{"id":586,"depth":263,"text":587,"children":929},[930,931],{"id":590,"depth":274,"text":591},{"id":637,"depth":274,"text":638},"devops","recipe","2026-07-15","Generating ssh key and logging into a server","md",null,"/knowledge-base/bug-banner-main2.png",{},true,"/knowledge-base/ssh-recipe","5",{"title":5,"description":935},{"loc":941},"knowledge-base/ssh-recipe",[947,948,949],"SSH","Networking","Security","-c8F9_PBaqsrueFcY358fr7ZVkDK1-NTBmq2yClH-Pk",[952,956],{"title":953,"path":954,"stem":955,"children":-1},"mTLS CookBook With Caddy","/knowledge-base/mtls","knowledge-base/mtls",{"title":957,"path":958,"stem":959,"children":-1},"systemd Service Guide","/knowledge-base/systemd","knowledge-base/systemd",1784306722469]