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

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

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


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

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

    • -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 [email protected]
  • 成功时会显示:
    Hi {username}! You've successfully authenticated...

总结

  1. ssh-keygen -f 生成自定义密钥。
  2. 上传 .pub 公钥到目标服务。
  3. 通过 ~/.ssh/config 指定私钥路径。
  4. 测试并修复权限问题。
相关推荐
藥瓿亭10 分钟前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_8097983214 分钟前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣17 分钟前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器
dmy1 小时前
n8n内网快速部署
运维·人工智能·程序员
程序员JerrySUN1 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
米粉03051 小时前
深入剖析Nginx:从入门到高并发架构实战
java·运维·nginx·架构
huangyuchi.2 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
moongoblin2 小时前
行业赋能篇-2-能源行业安全运维升级
运维·安全·协作
极简网络科技2 小时前
Docker、Wsl 打包迁移环境
运维·docker·容器
黑客老李2 小时前
JavaSec | SpringAOP 链学习分析
java·运维·服务器·开发语言·学习·apache·memcached