从零开始使用SSH链接目标主机(包括Github添加SSH验证,主机连接远程机SSH验证)

添加ssh密钥(当前机生成和远程机承认)

以下是从头开始生成自定义名称的SSH密钥的完整步骤(以GitHub为例,适用于任何SSH服务):


1. 生成自定义名称的SSH密钥对

bash 复制代码
# 生成密钥对(-t 指定算法,-f 指定路径和名称,-C 添加注释)
ssh-keygen -t ed25519 -f ~/.ssh/github_mykey -C "my@email.com"
  • 参数说明:

    • -t ed25519:推荐使用更安全的Ed25519算法(若系统不支持,可用 -t rsa -b 4096)。
    • -f ~/.ssh/github_mykey:自定义密钥路径和名称(此处生成 github_mykey(私钥)和 github_mykey.pub(公钥))。
    • -C "注释":可选,用于标识密钥用途(如邮箱)。
  • 交互提示:

    • 直接狂按回车跳过密码(或设置一个密钥密码增强安全性)。

生成密钥对

上传远程主机

2. 将公钥上传到目标服务

2.1 GitHub/GitLab等平台:

  1. 复制公钥内容:
bash 复制代码
   cat ~/.ssh/github_mykey.pub
  1. 登录GitHub → Settings → SSH and GPG keys → New SSH key,粘贴公钥。

2.2 修改服务器配置

适用于连接远程服务器的情况

复制代码
# 确保远程主机已开启 SSH 服务
sudo apt update 
sudo apt install openssh-server  # Ubuntu
sudo systemctl enable --now sshd   # 启动并设置开机自启

# 检查 SSH 服务状态
sudo systemctl status sshd
复制代码
# 修改SSH的配置
nano /etc/ssh/sshd_config
# 在服务器上检查以下关键配置
PasswordAuthentication yes      # 是否允许密码登录
PubkeyAuthentication yes       # 是否允许密钥登录
PermitRootLogin no             # 是否禁止root登录(建议禁用)

sudo systemctl restart sshd

2.2.2 自有服务器:

将公钥追加到服务器的 ~/.ssh/authorized_keys

bash 复制代码
ssh-copy-id -i ~/.ssh/github_mykey.pub user@server_ip

(若命令不可用,手动复制公钥内容到服务器的 ~/.ssh/authorized_keys 文件中)

3. 配置SSH客户端(在本机处理)

编辑或创建 ~/.ssh/config 文件,指定自定义密钥:

bash 复制代码
nano ~/.ssh/config

添加以下内容(以GitHub为例):

复制代码
Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/github_mykey
  IdentitiesOnly yes
  • 关键参数:
    • IdentityFile:指向你的自定义私钥路径。
    • IdentitiesOnly yes:避免SSH尝试默认密钥。

4. 测试连接

bash 复制代码
ssh -T git@github.com
  • 成功时会显示:
    Hi {username}! You've successfully authenticated...

总结

  1. ssh-keygen -f 生成自定义密钥。
  2. 上传 .pub 公钥到目标服务。
  3. 通过 ~/.ssh/config 指定私钥路径。
  4. 测试并修复权限问题。
相关推荐
·薯条大王1 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
小小、码农4 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b4 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨6 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK7 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
修罗王7 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
迪康Defender7 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他
酷可达拉斯8 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
张龙68710 小时前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker
frank006007110 小时前
Dell 17G 服务器阵列卡(PERC)纵向与横向详细对比
运维·服务器