Articles by Omer Cakmak
Fix SSH no matching key exchange method found
Fix SSH no matching key exchange method found by reading Their offer:, enabling the required KEX algorithm safely, and resolving follow-on host-key or cipher errors.
How to Migrate Redis to Valkey on Ubuntu 26.04
Migrate Redis 8 to Valkey 9 on Ubuntu 26.04 when RDB format 12 and DUMP/RESTORE fail, valkey-redis-compat is gone, and you need a logical cutover with a full key verify.
Redis Removed in RHEL 10: Migrate to Valkey
Why Redis packages are gone on RHEL 10, how to install Valkey, and how to migrate a real Redis OSS RDB dump into Valkey with ownership and SELinux fixes.
Install Redis Server on Rocky Linux 9 [Step-by-Step]
Step by step instructions to install redis on Rocky Linux 9
Fix Fatal glibc Error: CPU Does Not Support x86-64-v3 on RHEL 10
Fix Fatal glibc error CPU does not support x86-64-v3 on RHEL 10 by checking the CPU microarchitecture baseline and correcting VM EVC, CPU models, or VirtualBox when hardware already supports x86-64-v3.
How to Use systemd Soft Reboot on RHEL
Use systemctl soft-reboot on RHEL 10.1+ to restart userspace while the kernel keeps running, and verify SoftRebootsCount, boot_id, uptime, and service PIDs.
How to Install Docker on RHEL
Install Docker Engine Community (Docker CE) on RHEL 8, 9, and 10 from the official DNF repository, enable docker.service, verify with hello-world, optionally add the docker group, upgrade, and uninstall cleanly.
Deploy an EKS Cluster on AWS with Terraform
Provision a minimal Amazon EKS cluster with Terraform using the terraform-aws-modules VPC and EKS modules, a managed node group on Kubernetes 1.36, and kubectl verification on Ubuntu.
Fix kubectl Unauthorized After Terraform EKS Apply
Fix kubectl Unauthorized after Terraform EKS apply — confirm the AWS identity behind kubectl, list EKS access entries, and grant cluster access with enable_cluster_creator_admin_permissions or access_entries on …
Setup Kubernetes Cluster on AWS EC2 with kubeadm
Build a two-node kubeadm cluster on Ubuntu EC2 with containerd and Calico, open the right security group ports, join a worker, and deploy nginx to verify scheduling.
Install and Trust a CA Certificate in the Linux System Trust Store
Install a private CA certificate into the Linux system trust store with update-ca-certificates on Debian and Ubuntu or update-ca-trust on RHEL and Fedora, verify the anchor landed, remove it again, and fix the …
How to Find and Fix Memory Leaks in Linux Applications
Read LeakSanitizer and Valgrind reports down to the line that owns the memory, use the flags that add detail, attribute growth with Massif, and query a running process with vgdb so you fix the cause instead of only …
How to Install libc.so.6 on Linux (glibc Package, Not a Download)
Diagnose libc.so.6 errors by message type — GLIBC_2.xx not found, cannot open shared object file, wrong ELF class, or damaged system libc — then fix with the matching glibc package, multilib, rebuild, container, or …
Configure Fail2ban to Protect SSH on Linux
Install Fail2ban, enable the sshd jail with sane bantime and ignoreip values, verify bans after failed SSH logins on RHEL and Debian, and unban trusted client addresses when needed.
Found a Swap File by the Name: Fix Vim .swp Warnings (E325)
Fix Vim E325 Found a swap file by the name by reading the .swp prompt, recovering after a crash, or removing a stale swap file once no editor owns it — not Linux swap memory from mkswap.
Fix SSH No Route to Host: Routing, Firewall, and sshd Checks
Diagnose SSH no route to host with TCP port tests, ip route get, remote firewalld and sshd checks, and learn when the message means a firewall REJECT instead of a missing route.
Run Multiple Commands Over SSH on Linux
Chain remote commands over SSH with semicolons, &&, subshells, bash -s, and here documents, and pick the pattern that matches whether every step must run or stop on failure.
Long-Running Commands Over SSH: Keep Jobs Running After Disconnect
Run backups, builds, and other long jobs over SSH with explicit I/O redirection, nohup, setsid, tmux, or disown so work continues after the terminal closes and output lands in a log you can read later.
Enable UTF-8 Locale on Linux
Set a UTF-8 system locale with localectl or update-locale, confirm with locale and locale charmap, and fix missing-locale warnings on RHEL and Debian-family Linux.
Fix RPM Failed Dependencies on Install and Remove
Fix error Failed dependencies when installing a local RPM with dnf install, list requirements with dnf repoquery, install offline RPM bundles, and remove packages safely on RHEL family systems.
Enable Persistent Logging in systemd-journald on Linux
Store systemd-journald logs on disk under /var/log/journal with a Storage=persistent drop-in, restart systemd-journald, flush runtime logs with journalctl, and verify earlier boots with journalctl --list-boots.
Idle SSH Sessions: Disconnect or Keep Them Alive on Linux
Set ClientAliveInterval and ClientAliveCountMax on sshd to drop unresponsive SSH clients, use ServerAliveInterval on the OpenSSH client to keep sessions alive through NAT, and understand how TCPKeepAlive differs.
Sort Files and Directories by Size with du on Linux
Find the largest directories and files under a path with du piped to sort, using --max-depth for folder totals, -a for individual files, numeric -k filters, and head to keep the top results.
Disable SELinux in Linux (Runtime, Permissive, and Permanent)
Change or disable SELinux on Linux with setenforce for runtime permissive mode, semanage for one domain, grubby --args selinux=0 for permanent disable on RHEL 9 and 10, and a one-time GRUB edit when the system will not …
Detect Rootkits on Linux with rkhunter
Install rkhunter from EPEL or apt, update its signature database, baseline file properties with propupd, run a non-interactive check, and interpret warnings in rkhunter.log on RHEL and Debian-family hosts.
Disable ICMP Timestamp Responses in Linux
Block ICMP timestamp request (type 13) and reply (type 14) on Linux with firewalld rich rules, nftables, iptables, or UFW, then verify from a second host with nping before compliance scans run again.
Disk Types and Interface Types in Linux
Learn how Linux disk media types (HDD, SSD, optical) differ from interface and transport types (SATA, SAS, NVMe, Fibre Channel, USB), and how device names such as sda and nvme0n1 map to each layer.
How to Delay a Reboot in Linux
Delay a Linux reboot for a maintenance window with shutdown -r +minutes, systemctl reboot --when=, or at; notify users, confirm the pending job, and cancel if plans change.
Create a systemd Service Unit in Linux
Create a custom systemd .service unit under /etc/systemd/system/, explain Unit Service and Install sections, start and enable it with systemctl, and verify with status and journalctl.
How to Perform tar Incremental Backup on Linux
Take GNU tar listed-incremental backups with a snapshot file, create level 0 and level 1 archives, inspect Y and N file status, and restore by applying the full backup then each incremental in order.

