581 字
3 分钟
SSH 免密连接服务器

在 Windows 端创建密钥#

Terminal window
ssh-keygen

回车后会让你设置密钥生成路径以及 phrase 等内容,默认为空即可,一路回车。

然后可以在 C:\Users\你的win用户名\.ssh 下看到 id_rsaid_rsa.pub 两个文件,其中前者为私钥,后者为公钥。

上传公钥#

仅 Linux 可用#

Terminal window
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host

这里的 userhost 对应需要免密连接的服务器的用户和 IP 地址。

通用方法#

通过 scp,或者 sftp,或者其他什么方式,将公钥 id_rsa.pub 文件的内容粘贴到服务器的 ~/.ssh/authorized_keys 文件中。

配置本地 ssh#

ssh 配置文件地址:

# windows
C:\Users\你的win用户名\.ssh\config
# Linux
~/.ssh/config

在配置文件中添加如下内容:

Host 自定义名称
HostName 服务器的IP/域名
User 登录用户名
IdentityFile C:\Users\你的win用户名\.ssh\id_rsa

然后就可以在 Terminal 中实现免密 ssh 访问服务器

Terminal window
ssh 自定义名称

备注#

也许你会发现,通过 ssh-copy-id 命令或者别的什么方式,将公钥添加到远程服务器的 authorized_keys 文件中后,即使并且没有在本地 SSH 配置文件中显式指定 IdentityFile 字段,但仍然可以成功进行免密连接。

这是因为 SSH 客户端会默认使用 ~/.ssh/id_rsa(默认私钥文件)来进行身份验证。

SSH 客户端在尝试连接时会按照一定的顺序搜索可用的私钥文件,其中包括默认的 ~/.ssh/id_rsa 文件。因此,如果你的私钥文件恰好是默认的 ~/.ssh/id_rsa,那么在本地 SSH 配置文件中不显式指定 IdentityFile 字段也可以进行免密连接。

虽然在某些情况下可以省略 IdentityFile 字段,但为了确保连接的稳定性和安全性,建议在本地 SSH 配置文件中明确指定要使用的私钥文件路径。这样可以避免混淆和不必要的问题,并确保连接设置是清晰明了的。

支持作者
支付宝收款码
支付宝
微信收款码
微信
SSH 免密连接服务器
https://blog.085404.xyz/posts/ssh-免密连接服务器/
作者
Sun2ot
发布于
2024-03-10
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

最后更新于 ,距今已过 913

部分内容可能已过时