<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>使用技巧 on 个人技术随想</title>
        <link>https://www.dhao2001.com/categories/%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/</link>
        <description>Recent content in 使用技巧 on 个人技术随想</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Sat, 04 Dec 2021 21:06:43 +0800</lastBuildDate><atom:link href="https://www.dhao2001.com/categories/%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>SSH配置主机别名及指定认证私钥路径</title>
            <link>https://www.dhao2001.com/2021/12/04/ssh-config-specify-private-key-hostname/</link>
            <pubDate>Sat, 04 Dec 2021 21:06:43 +0800</pubDate>
            <guid>https://www.dhao2001.com/2021/12/04/ssh-config-specify-private-key-hostname/</guid>
            <description>&lt;p&gt;但有一个问题，有时候你可能拥有几个不同的SSH私钥（虽然没什么使用多个密钥对的必要性），或者私钥文件文件名不是默认的&lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;，应该怎么指定需要使用的私钥文件路径呢？&lt;/p&gt;&#xA;&lt;p&gt;几种常见的情景如下所示，更多详细内容，和标准的定义，请参考&lt;a class=&#34;link&#34; href=&#34;https://man7.org/linux/man-pages/man5/ssh_config.5.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ssh_config手册&lt;/a&gt;，或在终端中键入&lt;code&gt;man ssh_config&lt;/code&gt;查看。&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h2 id=&#34;使用命令行登录ssh&#34;&gt;&lt;a href=&#34;#%e4%bd%bf%e7%94%a8%e5%91%bd%e4%bb%a4%e8%a1%8c%e7%99%bb%e5%bd%95ssh&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;使用命令行登录SSH&#xA;&lt;/h2&gt;&lt;p&gt;第一种，就是我们最常见的登录SSH服务器的方式。当你在终端中输入如下命令。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh myname@my.host.addr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;SSH客户端会连接到该服务器，并尝试使用默认路径（见上述手册，IdentityFile部分）下的私钥，进行认证。如果私钥不在默认路径下，也未显式指定私钥文件，而服务器要求必须使用私钥认证，则认证失败。&lt;/p&gt;&#xA;&lt;p&gt;如果想显式指定私钥，可以使用&lt;code&gt;-i&lt;/code&gt;参数，指定私钥文件。例如。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh myname@myhost -i /path/to/mykey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;如果是连接SSH服务器啥的，这就够用了。但缺点很明显，每次登录，都必须显式指定私钥文件。而如果是&lt;code&gt;git&lt;/code&gt;命令，则会因为没有&lt;code&gt;-i&lt;/code&gt;参数支持，命令执行失败。怎么改进呢？我们看下面。&lt;/p&gt;&#xA;&lt;h2 id=&#34;使用ssh_conifg文件&#34;&gt;&lt;a href=&#34;#%e4%bd%bf%e7%94%a8ssh_conifg%e6%96%87%e4%bb%b6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;使用ssh_conifg文件&#xA;&lt;/h2&gt;&lt;h3 id=&#34;配置文件&#34;&gt;&lt;a href=&#34;#%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;配置文件&#xA;&lt;/h3&gt;&lt;p&gt;实际上，关于一个SSH连接，一些行为是可以在配置文件中定义的。你可以针对不同的目标服务器，配置不同的连接行为。&lt;/p&gt;&#xA;&lt;p&gt;对于Linux中的一个用户而言，SSH配置文件位于&lt;code&gt;~/.ssh/config&lt;/code&gt;。对于整个系统而言，SSH配置文件位于&lt;code&gt;/etc/ssh/ssh_config&lt;/code&gt;（注意区别&lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;，&lt;code&gt;sshd_config&lt;/code&gt;是SSH服务器进程的配置文件，&lt;strong&gt;不用于客户端。&lt;/strong&gt;）&lt;/p&gt;&#xA;&lt;p&gt;我们用一个&lt;code&gt;~/.ssh/config&lt;/code&gt;的片段来说明。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Host myserver&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;na&#34;&gt;Hostname 192.168.1.123&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;na&#34;&gt;User root&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;na&#34;&gt;IdentityFile ~/mykey&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;上面这个配置文件非常好读懂。&lt;/p&gt;&#xA;&lt;p&gt;最开始的&lt;code&gt;Host&lt;/code&gt;，代表的是，你在&lt;code&gt;ssh&lt;/code&gt;命令中，给定的&lt;code&gt;host&lt;/code&gt;参数的值，常常就是你输入&lt;code&gt;username@host&lt;/code&gt;中&lt;code&gt;@&lt;/code&gt;后面那部分。如果匹配，则应用下面的规则。对于该Host的定义，在&lt;code&gt;config&lt;/code&gt;文件中持续到下一个&lt;code&gt;Host&lt;/code&gt;或者&lt;code&gt;Match&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;接下来是&lt;code&gt;Hostname&lt;/code&gt;指定了你服务器的真实地址，可以是ip，当然也可以是域名。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;User&lt;/code&gt;指定了登录的用户名。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;IdentityFile&lt;/code&gt;指定了登录该&lt;code&gt;Host&lt;/code&gt;使用的认证私钥文件路径。&lt;/p&gt;&#xA;&lt;h3 id=&#34;使用&#34;&gt;&lt;a href=&#34;#%e4%bd%bf%e7%94%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;使用&#xA;&lt;/h3&gt;&lt;p&gt;编写了配置文件，就可以使用了。现在，登录到你的服务器更加简单，只需要在终端中输入。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh myserver&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;就可以应用&lt;code&gt;Host myserver&lt;/code&gt;块下的配置，自动使用指定的私钥文件进行认证。&lt;/p&gt;&#xA;&lt;h3 id=&#34;git&#34;&gt;&lt;a href=&#34;#git&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Git&#xA;&lt;/h3&gt;&lt;blockquote class=&#34;alert alert-note&#34;&gt;&#xA;        &lt;div class=&#34;alert-header&#34;&gt;&#xA;            &lt;span class=&#34;alert-icon&#34;&gt;📝&lt;/span&gt;&#xA;            &lt;span class=&#34;alert-title&#34;&gt;备注&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;alert-body&#34;&gt;&#xA;            &lt;p&gt;&lt;strong&gt;关于Git使用场景的提醒&lt;/strong&gt;&#xA;虽然大抵是简单的触类旁通：上面用于Git的案例，&lt;strong&gt;不仅适用于Github，也适用于其他Git平台&lt;/strong&gt;，甚至包括自己搭建的Git服务器，像本网站的生成部署脚本，就利用了这个方法达到一键部署的效果。&lt;/p&gt;&#xA;        &lt;/div&gt;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;我们可以用上述方法，解决&lt;code&gt;git&lt;/code&gt;命令没有&lt;code&gt;-i&lt;/code&gt;参数的不便之处。以Github为例，我们只需要向&lt;code&gt;~/.ssh/config&lt;/code&gt;添加如下一个段落。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Host github.com&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;na&#34;&gt;HostName github.com&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;na&#34;&gt;IdentityFile ~/mykey&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;这样，下次对远程仓库代码进行更改时候，就会使用你指定的SSH私钥了。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>注册表开启Windows 10微软拼音输入法小鹤双拼</title>
            <link>https://www.dhao2001.com/2021/12/04/windows10-enable-xiaohe-double-pinyin-with-registry/</link>
            <pubDate>Sat, 04 Dec 2021 19:06:18 +0800</pubDate>
            <guid>https://www.dhao2001.com/2021/12/04/windows10-enable-xiaohe-double-pinyin-with-registry/</guid>
            <description>&lt;p&gt;使用注册表，可以轻松向系统中添加该双拼方案。但之前在网上搜索时候，有些方法不知道为什么会失败。这里贴一个我用起来没问题的。&lt;/p&gt;&#xA;&lt;p&gt;使用方法：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;新建一个文本文件&lt;/li&gt;&#xA;&lt;li&gt;将下列文本复制粘贴到该文本文件中&lt;/li&gt;&#xA;&lt;li&gt;修改文件后缀名为&lt;code&gt;.reg&lt;/code&gt;，双击合并该注册表&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-reg&#34; data-lang=&#34;reg&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Windows Registry Editor Version 5.00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;HKEY_CURRENT_USER&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\Software\Microsoft\InputMethod\Settings\CHS]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;&amp;#34;Enable Double Pinyin&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;dword&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00000001&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;&amp;#34;DoublePinyinScheme&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;dword&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0000000a&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;&amp;#34;Expand Double Pinyin&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;dword&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00000000&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;&amp;#34;UserDefinedDoublePinyinScheme0&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;XiaoHe*2*^*iuvdjhcwfg xmlnpbksqszxkrltvyovt&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
        </item></channel>
</rss>
