惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
Recorded Future
Recorded Future
爱范儿
爱范儿
美团技术团队
博客园_首页
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
T
Tailwind CSS Blog
雷峰网
雷峰网
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
量子位
Stack Overflow Blog
Stack Overflow Blog
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
V
Visual Studio Blog
罗磊的独立博客
Jina AI
Jina AI
宝玉的分享
宝玉的分享
C
CERT Recently Published Vulnerability Notes
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
F
Fortinet All Blogs
T
Tenable Blog
S
Securelist
D
DataBreaches.Net
P
Proofpoint News Feed
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Heimdal Security Blog
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
Martin Fowler
Martin Fowler
W
WeLiveSecurity
MyScale Blog
MyScale Blog
The Cloudflare Blog
Security Latest
Security Latest
Hugging Face - Blog
Hugging Face - Blog
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cloudbric
Cloudbric

纸鹿摸鱼处

北京实习300天 | 纸鹿摸鱼处 实习后买了一堆东西 | 纸鹿摸鱼处 谈谈不受欢迎的博客技术特征 | 纸鹿摸鱼处 我们的设备被拿来做了什么:软件的背景行为 | 纸鹿摸鱼处 生成式AI正在生成 | 纸鹿摸鱼处 前端字体二三事 | 纸鹿摸鱼处 深色模式开发的最佳实践 | 纸鹿摸鱼处 寻不回手工油糕 | 纸鹿摸鱼处 一些数码外设的评价和“捡垃圾”心得 | 纸鹿摸鱼处 朋友的 Vivado 和 Modelsim 装上了吗 | 纸鹿摸鱼处 迟到三月的年末博客杂谈:动力、文章和内容 | 纸鹿摸鱼处 VitePress 不完全优化指南 | 纸鹿摸鱼处 给电脑新手的笔记本开荒指南导读 | 纸鹿摸鱼处 再谈考试时钟:技术之外的思考 | 纸鹿摸鱼处 今日校园见闻:我已经出离高兴了 | 纸鹿摸鱼处 配置并差点运行不了 Java Applet | 纸鹿摸鱼处 Windows 上的开源软件入门 | 纸鹿摸鱼处 博客进化:从 Hexo 到 Nuxt Content | 纸鹿摸鱼处 祖母的90年代南昌差旅之险 | 纸鹿摸鱼处 Linux 下通过 Samba 共享文件夹 | 纸鹿摸鱼处 从“端口无法访问”到本地环境问题——朋友的博客踩坑记录 | 纸鹿摸鱼处 Windows 空间管理/清理指南 | 纸鹿摸鱼处 遭遇APP乱象:老人的「钱袋子」开线了 | 纸鹿摸鱼处 封面被 Linux QQ 官方用了,但是有一些小缺陷 | 纸鹿摸鱼处 Windows 终端体验优化指南 | 纸鹿摸鱼处 有问题,就要讲出来。 | 纸鹿摸鱼处 从 CSS 排序折腾到 Stylelint 和 pnpm | 纸鹿摸鱼处 使用 DOSBox 的多种方式 | 纸鹿摸鱼处 今日有「假」 | 纸鹿摸鱼处 把博客文章按年份放在子文件夹中了 | 纸鹿摸鱼处 写过的奇妙代码。 | 纸鹿摸鱼处 Arch Linux 启动引导修复 | 纸鹿摸鱼处 在延长今天和期待明天之间 | 纸鹿摸鱼处 今日无事,除了一些技术咨询 | 纸鹿摸鱼处 系统引导配置分享 | 纸鹿摸鱼处 病毒高占用CPU,三天杀俩 | 纸鹿摸鱼处 运营商又想多收话费了 | 纸鹿摸鱼处 电脑连接手机,手机给电脑传文件…… | 纸鹿摸鱼处 Moonlight 串流指南 | 纸鹿摸鱼处 Termux 简单指南 | 纸鹿摸鱼处 Tailscale 不完全使用指南 | 纸鹿摸鱼处 Windows 安装指南 | 纸鹿摸鱼处 Arch Linux 易用性及美化 | 纸鹿摸鱼处 Arch Linux 初步配置 | 纸鹿摸鱼处 使用 ArchInstall 安装 Arch Linux | 纸鹿摸鱼处 VS Code 简单配置项 | 纸鹿摸鱼处 他修电脑又遇到了我 | 纸鹿摸鱼处 修监控 (授权转载) | 纸鹿摸鱼处 被大块落冰砸中的话—— | 纸鹿摸鱼处
SSH 免密登录 | 纸鹿摸鱼处
纸鹿本鹿, hi@zhilu.cyou · 2023-12-25 · via 纸鹿摸鱼处

在终端中使用 SSH 之前,可以先美化终端以提升用户体验。

ED225519 类型的密钥综合性能更好。

$

ssh-keygen -t ed25519

连续按回车键即可。如果你想自定义生成内容,请使用 ssh-keygen -t ed25519 -C "内容"。生成好的公钥可以通过 cat ~/.ssh/id_ed25519.pub 查看。

将公钥加入认证列表

如果服务端是 Windows OpenSSH,请将服务端 %ProgramData%\ssh\sshd_config 文件中的此行取消注释(需要管理员权限):

%ProgramData%\ssh\sshd_configsh
# PubkeyAuthentication yes

~/.ssh/authorized_keys 文件中逐行添加公钥即可。此文件的权限应当是 644,否则可能会被拒绝读取(也就是无法用SSH公钥认证登录)。

示例:我的SSH公钥

避免每次输入用户名和IP地址

如果你有经常连接的 SSH 服务器,可以在 SSH 配置文件中按照以下格式添加条目,即可直接通过 Host 项的名字连接,还能在 ssh 命令输到一半时按 Tab 键自动补全:

~/.ssh/configssh-config
Host zhilu-server
    Hostname 1.1.1.1
    Port 8022
    User zhilu

在 SSH 配置文件中,缩进是一个 Tab 或者 4 个空格。(早期 CMake 的惯用缩进 8 个空格作为规范)

使用公钥完成 GitHub 登录

参见 GitHub 官方教程:通过 SSH 连接到 GitHub

设置 SSH 代理

通常不建议使用 HTTPS 连接到 GitHub,通过 SSH 连接时一般不需要代理即可直接访问。如果没有使用“TUN 模式”或透明代理,系统代理设置不会自动应用到 SSH 连接上。

  • 更改仓库的远程地址 $

    git remote set-url origin git@github.com:username/repo.git

当使用代理时,大多数节点不允许直接访问 22 端口,因此应在 443 端口通过 SSH 连接到 GitHub 仓库。可以通过修改 SSH 配置文件实现:

~/.ssh/configssh-config
Host github.com
    Hostname ssh.github.com
    Port 443
    User git
    # TUN 模式或透明代理不需要 ProxyCommand
    # Windows下SOCKS5
    # ProxyCommand connect -S 127.0.0.1:10808 %h %p
    # Windows下HTTP
    # ProxyCommand connect -H 127.0.0.1:10809 %h %p
    # Linux和macOS下SOCKS5
    # ProxyCommand nc -v -x 127.0.0.1:20170 %h %p
    # Linux和macOS下HTTP
    # ProxyCommand nc -v -X connect -x 127.0.0.1:20172 %h %p

这样一般能正常执行 git 操作,如果不行,可以通过启用或取消注释来通过代理访问 GitHub,端口可能需要更改。

  • Linux 和 macOS:可以使用 nc 工具来实现 SOCKS5 代理。
  • Windows:需要用 connect 命令,该命令可在 Git for Windows 提供的 Git Bash 中找到,如果无法执行 connect,可能需要使用 Git Bash 操作。

关于 SSH 的更多玩法