# SSH 免密登陆

原文链接：[https://blog.csdn.net/weixin_43922901/article/details/106078558](https://blog.csdn.net/weixin_43922901/article/details/106078558) 
 
 
 
该方法和什么终端无关，主要是根据ssh key方式登陆，无需远程主机登录密码，非常方便。
 

### 1 生成ssh秘钥和公钥文件

 
进入本地终端：
 

<pre><code>ssh-keygen -t rsa
</code></pre>

 
出现如下图所示，这时候请不要一直回车，输入相应的文件名称，因为不输入的话是默认生成id_rsa和id_rsa.pub两个文件。然而，由于很多人其实在本地配置了GitHub的钥匙，因此会存在这样的文件，所以在这里我们需要改个名，比如id_ssh。

[![](/uploads/images/gallery/2024-08/scaled-1680-/KVPrbNd01ZvA4Rmb-image-1723127521085.png)](/uploads/images/gallery/2024-08/KVPrbNd01ZvA4Rmb-image-1723127521085.png)

 输入秘钥文件名：

[![](/uploads/images/gallery/2024-08/scaled-1680-/9L6d6nynDn9uEGaP-image-1723127534556.png)](/uploads/images/gallery/2024-08/9L6d6nynDn9uEGaP-image-1723127534556.png) 

 输入完钥匙文件名称后，在路径~/.ssh/下会生成文件id_ssh和id_ssh.pub

[![](/uploads/images/gallery/2024-08/scaled-1680-/a7stlBNBS4D7tRAQ-image-1723127559322.png)](/uploads/images/gallery/2024-08/a7stlBNBS4D7tRAQ-image-1723127559322.png)

 然后执行：
 

<pre><code>cat id_ssh.pub
</code></pre>

 
**把文件中的公钥复制到远程主机的~/.ssh/authorized_keys中**，如果没有这个文件，那么请创建一个新的。

[![](/uploads/images/gallery/2024-08/scaled-1680-/lyFY68zVz3Ng2ug2-image-1723127576215.png)](/uploads/images/gallery/2024-08/lyFY68zVz3Ng2ug2-image-1723127576215.png)
 

### 2 配置config文件

 
同样**进入到本地 .ssh目录**
 

<pre><code>cd ~/.ssh/ 
vim config
</code></pre>

 
按如下格式修改目录下的config文件。有几个主机就可以配置几个，但是本地的id_ssh.pub内的公钥内容一定记得复制到远程主机的~/.ssh/authorized_keys中。
 

<pre><code>Host workhost0  # 远程主机别名
  HostName 192.168.63.8  # 远程主机ip
  User zhangsan  # 你在远程主机的用户名
  Port 22
  IdentityFile ~/.ssh/id_ssh  # 你的ssh秘钥文件

Host workhost1
  HostName 192.168.63.9
  User zhangsan
  Port 22
  IdentityFile ~/.ssh/id_ssh
</code></pre>

 

### 3 登录

 
在本地终端执行：
 

<pre><code>ssh workhost0
</code></pre>

 
即可成功免密登录。