[{"data":1,"prerenderedAt":669},["ShallowReactive",2],{"navigation_docs":3,"-guides-notes-dev-qa":168,"-guides-notes-dev-qa-surround":666},[4,46,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":45},"Bookmarks","i-lucide:bookmark","\u002Fbookmarks","10.bookmarks",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"工具","\u002Fbookmarks\u002Ftools","10.bookmarks\u002F10.tools","i-lucide:wrench",{"title":16,"path":17,"stem":18,"icon":19},"开发","\u002Fbookmarks\u002Fdev","10.bookmarks\u002F20.dev","i-lucide:code-xml",{"title":21,"path":22,"stem":23,"icon":24},"学习","\u002Fbookmarks\u002Flearn","10.bookmarks\u002F30.learn","i-lucide:graduation-cap",{"title":26,"path":27,"stem":28,"icon":29},"视觉素材","\u002Fbookmarks\u002Fmedia","10.bookmarks\u002F40.media","i-lucide:image",{"title":31,"path":32,"stem":33,"icon":34},"AI","\u002Fbookmarks\u002Fai","10.bookmarks\u002F50.ai","i-lucide:sparkles",{"title":36,"path":37,"stem":38,"icon":39},"设计","\u002Fbookmarks\u002Fdesign","10.bookmarks\u002F60.design","i-lucide:palette",{"title":41,"path":42,"stem":43,"icon":44},"其它","\u002Fbookmarks\u002Fmore","10.bookmarks\u002F70.more","i-lucide:ellipsis",false,{"title":31,"icon":34,"path":47,"stem":48,"children":49,"page":45},"\u002Fai","20.ai",[50,55,60,65,70],{"title":51,"path":52,"stem":53,"icon":54},"Agent 工具","\u002Fai\u002Fagent-tools","20.ai\u002F10.agent-tools","i-lucide:puzzle",{"title":56,"path":57,"stem":58,"icon":59},"OmniRoute 使用","\u002Fai\u002Fomniroute-setup","20.ai\u002F20.omniroute-setup","i-lucide:route",{"title":61,"path":62,"stem":63,"icon":64},"RTK 使用","\u002Fai\u002Frtk-setup","20.ai\u002F30.rtk-setup","i-lucide:scissors",{"title":66,"path":67,"stem":68,"icon":69},"Headroom 使用","\u002Fai\u002Fheadroom-setup","20.ai\u002F40.headroom-setup","i-lucide:minimize-2",{"title":71,"path":72,"stem":73,"icon":74},"Serena 使用","\u002Fai\u002Fserena-setup","20.ai\u002F50.serena-setup","i-lucide:scan-search",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":45},"Guides","i-lucide:book-open","\u002Fguides","30.guides",[81,133,154],{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":45},"Notes","i-lucide:notebook-text","\u002Fguides\u002Fnotes","30.guides\u002F10.notes",[87,91,96,100,105,109,113,118,123,128],{"title":88,"path":89,"stem":90,"icon":19},"开发问题记录","\u002Fguides\u002Fnotes\u002Fdev-qa","30.guides\u002F10.notes\u002F10.dev-qa",{"title":92,"path":93,"stem":94,"icon":95},"js 常用整理","\u002Fguides\u002Fnotes\u002Fjs-tidy","30.guides\u002F10.notes\u002F20.js-tidy","i-lucide:braces",{"title":97,"path":98,"stem":99,"icon":95},"js 小技巧","\u002Fguides\u002Fnotes\u002Fjs-tips","30.guides\u002F10.notes\u002F30.js-tips",{"title":101,"path":102,"stem":103,"icon":104},"git 问题记录","\u002Fguides\u002Fnotes\u002Fgit-qa","30.guides\u002F10.notes\u002F40.git-qa","i-lucide:git-branch",{"title":106,"path":107,"stem":108,"icon":104},"git 扩展命令","\u002Fguides\u002Fnotes\u002Fgit-expand","30.guides\u002F10.notes\u002F50.git-expand",{"title":110,"path":111,"stem":112,"icon":104},"git 命令速查表","\u002Fguides\u002Fnotes\u002Fgit-cheatsheet","30.guides\u002F10.notes\u002F60.git-cheatsheet",{"title":114,"path":115,"stem":116,"icon":117},"bash 命令速查表","\u002Fguides\u002Fnotes\u002Fbash-cheatsheet","30.guides\u002F10.notes\u002F70.bash-cheatsheet","i-lucide:square-terminal",{"title":119,"path":120,"stem":121,"icon":122},"linux 命令速查表","\u002Fguides\u002Fnotes\u002Flinux-cheatsheet","30.guides\u002F10.notes\u002F80.linux-cheatsheet","i-lucide:server",{"title":124,"path":125,"stem":126,"icon":127},"Docker 使用","\u002Fguides\u002Fnotes\u002Fdocker-setup","30.guides\u002F10.notes\u002F90.docker-setup","i-lucide:container",{"title":129,"path":130,"stem":131,"icon":132},"常用工具命令","\u002Fguides\u002Fnotes\u002Fcommon-tool-commands","30.guides\u002F10.notes\u002F95.common-tool-commands","i-lucide:toolbox",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":45},"System","i-lucide:monitor","\u002Fguides\u002Fsystem","30.guides\u002F20.system",[139,144,149],{"title":140,"path":141,"stem":142,"icon":143},"系统常用软件","\u002Fguides\u002Fsystem\u002Fsystem-software","30.guides\u002F20.system\u002F10.system-software","i-lucide:package",{"title":145,"path":146,"stem":147,"icon":148},"开发工具命令","\u002Fguides\u002Fsystem\u002Fdev-tools-commands","30.guides\u002F20.system\u002F20.dev-tools-commands","i-lucide:terminal",{"title":150,"path":151,"stem":152,"icon":153},"macOS 使用记录","\u002Fguides\u002Fsystem\u002Fmacos-usage-record","30.guides\u002F20.system\u002F30.macos-usage-record","i-simple-icons:apple",{"title":155,"icon":54,"path":156,"stem":157,"children":158,"page":45},"Other","\u002Fguides\u002Fother","30.guides\u002F30.other",[159,164],{"title":160,"path":161,"stem":162,"icon":163},"汉语拼音和小鹤双拼","\u002Fguides\u002Fother\u002Fflypy-pinyin","30.guides\u002F30.other\u002F10.flypy-pinyin","i-lucide:notebook-pen",{"title":165,"path":166,"stem":167,"icon":143},"魔方公式","\u002Fguides\u002Fother\u002Frubik-cube-formula","30.guides\u002F30.other\u002F20.rubik-cube-formula",{"id":169,"title":88,"body":170,"description":210,"extension":660,"links":661,"meta":662,"navigation":663,"path":89,"seo":664,"stem":90,"__hash__":665},"docs\u002F30.guides\u002F10.notes\u002F10.dev-qa.md",{"type":171,"value":172,"toc":654},"minimark",[173,178,487,491,495,591,595,619,623,650],[174,175,177],"h2",{"id":176},"电脑-ssh-配置管理多个远程仓库","电脑 SSH 配置管理多个远程仓库",[179,180,182,192,196,335,343,356,424,427,440,468,472],"steps",{"level":181},"4",[183,184,186,187,191],"h4",{"id":185},"为账户生成独立的-ssh-密钥","为账户生成独立的 ",[188,189,190],"code",{},"SSH"," 密钥",[193,194,195],"p",{},"本地调用私钥时默认使用 id_rsa，针对于自定义名称的，需要编写 config 文件。",[197,198,200,270],"tabs",{"sync":199},"pkg",[201,202,204,248],"tabs-item",{"label":203},"ed25519",[205,206,211],"pre",{"className":207,"code":208,"language":209,"meta":210,"style":210},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ssh-keygen -t ed25519 -C \"personal@email.com\" -f ~\u002F.ssh\u002Fid_ed25519_github\n","bash","",[188,212,213],{"__ignoreMap":210},[214,215,218,222,226,229,232,236,239,242,245],"span",{"class":216,"line":217},"line",1,[214,219,221],{"class":220},"sBMFI","ssh-keygen",[214,223,225],{"class":224},"sfazB"," -t",[214,227,228],{"class":224}," ed25519",[214,230,231],{"class":224}," -C",[214,233,235],{"class":234},"sMK4o"," \"",[214,237,238],{"class":224},"personal@email.com",[214,240,241],{"class":234},"\"",[214,243,244],{"class":224}," -f",[214,246,247],{"class":224}," ~\u002F.ssh\u002Fid_ed25519_github\n",[249,250,251,261,264,267],"ul",{},[252,253,254,257,258],"li",{},[188,255,256],{},"-t ed25519","：指定密钥类型为 ",[188,259,260],{},"Ed25519（椭圆曲线算法）",[252,262,263],{},"更安全（抗量子计算攻击）",[252,265,266],{},"密钥更短但安全性相当（256 位 vs RSA 4096 位）",[252,268,269],{},"生成更快，签名验证更快",[201,271,273,307],{"label":272},"rsa",[205,274,276],{"className":207,"code":275,"language":209,"meta":210,"style":210},"ssh-keygen -t rsa -b 4096 -C \"personal@email.com\" -f ~\u002F.ssh\u002Fid_rsa_github\n",[188,277,278],{"__ignoreMap":210},[214,279,280,282,284,287,290,294,296,298,300,302,304],{"class":216,"line":217},[214,281,221],{"class":220},[214,283,225],{"class":224},[214,285,286],{"class":224}," rsa",[214,288,289],{"class":224}," -b",[214,291,293],{"class":292},"sbssI"," 4096",[214,295,231],{"class":224},[214,297,235],{"class":234},[214,299,238],{"class":224},[214,301,241],{"class":234},[214,303,244],{"class":224},[214,305,306],{"class":224}," ~\u002F.ssh\u002Fid_rsa_github\n",[249,308,309,317,323,329],{},[252,310,311,257,314],{},[188,312,313],{},"-t rsa",[188,315,316],{},"RSA",[252,318,319,322],{},[188,320,321],{},"-b 4096","：指定密钥长度为 4096 位（更安全）",[252,324,325,328],{},[188,326,327],{},"-C","：添加注释（通常用邮箱标识）",[252,330,331,334],{},[188,332,333],{},"-f","：指定密钥文件保存路径",[183,336,338,339,342],{"id":337},"配置-config-文件","配置 ",[188,340,341],{},"config"," 文件",[205,344,346],{"className":207,"code":345,"language":209,"meta":210,"style":210},"nano ~\u002F.ssh\u002Fconfig\n",[188,347,348],{"__ignoreMap":210},[214,349,350,353],{"class":216,"line":217},[214,351,352],{"class":220},"nano",[214,354,355],{"class":224}," ~\u002F.ssh\u002Fconfig\n",[197,357,358,396],{"sync":199},[201,359,360],{"label":203},[205,361,365],{"className":362,"code":363,"language":364,"meta":210,"style":210},"language-ssh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Host github.com\nHostName github.com\nUser git\nIdentityFile ~\u002F.ssh\u002Fid_ed25519_github\nIdentitiesOnly yes\n","ssh",[188,366,367,372,378,384,390],{"__ignoreMap":210},[214,368,369],{"class":216,"line":217},[214,370,371],{},"Host github.com\n",[214,373,375],{"class":216,"line":374},2,[214,376,377],{},"HostName github.com\n",[214,379,381],{"class":216,"line":380},3,[214,382,383],{},"User git\n",[214,385,387],{"class":216,"line":386},4,[214,388,389],{},"IdentityFile ~\u002F.ssh\u002Fid_ed25519_github\n",[214,391,393],{"class":216,"line":392},5,[214,394,395],{},"IdentitiesOnly yes\n",[201,397,398],{"label":272},[205,399,401],{"className":362,"code":400,"language":364,"meta":210,"style":210},"Host github.com\nHostName github.com\nUser git\nIdentityFile ~\u002F.ssh\u002Fid_rsa_github\nIdentitiesOnly yes\n",[188,402,403,407,411,415,420],{"__ignoreMap":210},[214,404,405],{"class":216,"line":217},[214,406,371],{},[214,408,409],{"class":216,"line":374},[214,410,377],{},[214,412,413],{"class":216,"line":380},[214,414,383],{},[214,416,417],{"class":216,"line":386},[214,418,419],{},"IdentityFile ~\u002F.ssh\u002Fid_rsa_github\n",[214,421,422],{"class":216,"line":392},[214,423,395],{},[183,425,426],{"id":426},"添加公钥到各平台",[205,428,430],{"className":207,"code":429,"language":209,"meta":210,"style":210},"cat ~\u002F.ssh\u002Fid_ed25519_github.pub\n",[188,431,432],{"__ignoreMap":210},[214,433,434,437],{"class":216,"line":217},[214,435,436],{"class":220},"cat",[214,438,439],{"class":224}," ~\u002F.ssh\u002Fid_ed25519_github.pub\n",[197,441,442,456],{},[201,443,445],{"label":444},"GitHub",[205,446,450],{"className":447,"code":448,"language":449,"meta":210,"style":210},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Settings → SSH and GPG keys\n","txt",[188,451,452],{"__ignoreMap":210},[214,453,454],{"class":216,"line":217},[214,455,448],{},[201,457,459],{"label":458},"GitLab",[205,460,462],{"className":447,"code":461,"language":449,"meta":210,"style":210},"Preferences → SSH Keys\n",[188,463,464],{"__ignoreMap":210},[214,465,466],{"class":216,"line":217},[214,467,461],{},[183,469,471],{"id":470},"测试-ssh-连接","测试 SSH 连接",[205,473,475],{"className":207,"code":474,"language":209,"meta":210,"style":210},"ssh -T git@github.com\n",[188,476,477],{"__ignoreMap":210},[214,478,479,481,484],{"class":216,"line":217},[214,480,364],{"class":220},[214,482,483],{"class":224}," -T",[214,485,486],{"class":224}," git@github.com\n",[174,488,490],{"id":489},"ping-和-telnet-对比","ping 和 telnet 对比",[492,493,494],"warning",{},"出于安全考虑，现在很多服务器都会禁用 telnet，转而使用更安全的 SSH 协议。而 ping 则因为是基础网络诊断工具，使用仍然很普遍。",[197,496,497,537],{},[201,498,500,525],{"label":499},"ping",[205,501,503],{"className":447,"code":502,"language":449,"meta":210,"style":210},"1. 测试网络连接是否正常 - 通过发送 ICMP 数据包到目标主机并等待响应\n2. 测量网络延迟 - 可以看到数据包往返时间 (RTT)\n3. 检测主机是否在线 - 如果能收到响应，说明目标主机处于运行状态\n4. 排查网络故障 - 可以帮助定位网络中断或延迟的位置\n",[188,504,505,510,515,520],{"__ignoreMap":210},[214,506,507],{"class":216,"line":217},[214,508,509],{},"1. 测试网络连接是否正常 - 通过发送 ICMP 数据包到目标主机并等待响应\n",[214,511,512],{"class":216,"line":374},[214,513,514],{},"2. 测量网络延迟 - 可以看到数据包往返时间 (RTT)\n",[214,516,517],{"class":216,"line":380},[214,518,519],{},"3. 检测主机是否在线 - 如果能收到响应，说明目标主机处于运行状态\n",[214,521,522],{"class":216,"line":386},[214,523,524],{},"4. 排查网络故障 - 可以帮助定位网络中断或延迟的位置\n",[205,526,528],{"className":207,"code":527,"language":209,"meta":210,"style":210},"ping baidu.com\n",[188,529,530],{"__ignoreMap":210},[214,531,532,534],{"class":216,"line":217},[214,533,499],{"class":220},[214,535,536],{"class":224}," baidu.com\n",[201,538,540,565],{"label":539},"telnet",[205,541,543],{"className":447,"code":542,"language":449,"meta":210,"style":210},"1. 远程登录 - 可以远程连接到其他计算机并进行操作\n2. 测试端口连通性 - 可以用来测试特定端口是否开放\n3. 调试网络服务 - 可以直接与运行在特定端口上的服务进行交互\n4. 排查应用层协议问题 - 因为可以直接发送原始命令，所以适合调试像 HTTP、SMTP 等协议\n",[188,544,545,550,555,560],{"__ignoreMap":210},[214,546,547],{"class":216,"line":217},[214,548,549],{},"1. 远程登录 - 可以远程连接到其他计算机并进行操作\n",[214,551,552],{"class":216,"line":374},[214,553,554],{},"2. 测试端口连通性 - 可以用来测试特定端口是否开放\n",[214,556,557],{"class":216,"line":380},[214,558,559],{},"3. 调试网络服务 - 可以直接与运行在特定端口上的服务进行交互\n",[214,561,562],{"class":216,"line":386},[214,563,564],{},"4. 排查应用层协议问题 - 因为可以直接发送原始命令，所以适合调试像 HTTP、SMTP 等协议\n",[205,566,568],{"className":207,"code":567,"language":209,"meta":210,"style":210},"brew install telnet\ntelnet baidu.com 80\n",[188,569,570,581],{"__ignoreMap":210},[214,571,572,575,578],{"class":216,"line":217},[214,573,574],{"class":220},"brew",[214,576,577],{"class":224}," install",[214,579,580],{"class":224}," telnet\n",[214,582,583,585,588],{"class":216,"line":374},[214,584,539],{"class":220},[214,586,587],{"class":224}," baidu.com",[214,589,590],{"class":292}," 80\n",[174,592,594],{"id":593},"cmd-下提示-系统提示找不到路径","cmd 下提示 \"系统提示找不到路径\"",[249,596,597,608],{},[252,598,599,600,603,604,607],{},"首先 ",[188,601,602],{},"win + R"," 打开运行，输入 ",[188,605,606],{},"regedit"," 命令，打开注册表",[252,609,610,611,614,615,618],{},"找到 ",[188,612,613],{},"计算机\\HKEY_CURRENT_USER\\Software\\Microsoft\\Command Processor"," 路径下 ",[188,616,617],{},"Autorun"," 注册表项，删除即可。",[174,620,622],{"id":621},"隐藏-powershellcmd-启动提示信息","隐藏 powershell\u002Fcmd 启动提示信息",[249,624,625,639],{},[252,626,627,628,631,632,635,636],{},"在 ",[188,629,630],{},"powershell"," 目标路径后追加 ",[188,633,634],{},"-NoLogo"," 或者 ",[188,637,638],{},"-nologo",[252,640,627,641,631,644,635,647],{},[188,642,643],{},"cmd",[188,645,646],{},"-NoLogo \u002Fk",[188,648,649],{},"-nologo \u002Fk",[651,652,653],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":210,"searchDepth":374,"depth":374,"links":655},[656,657,658,659],{"id":176,"depth":374,"text":177},{"id":489,"depth":374,"text":490},{"id":593,"depth":374,"text":594},{"id":621,"depth":374,"text":622},"md",null,{},{"icon":19},{"title":88,"description":210},"lXdMpWQr9BMuK83Dixpfr-nJXP_CLEqt63iiCeshknI",[667,668],{"title":71,"path":72,"stem":73,"description":210,"icon":74,"children":-1},{"title":92,"path":93,"stem":94,"description":210,"icon":95,"children":-1},1789315516800]