使用SSH私钥文件连接到远程服务器
1. 准备 SSH 私钥文件
确保你已经拥有一个 SSH 私钥文件
2. 设置私钥文件权限
为了安全起见,SSH 私钥文件的权限应设置为仅所有者可读。 这个是一个必要的步骤!!!!!!!
Linux/mac
chmod 600 /path/to/your/private_key.pem
万恶的Windows
在 Windows 上,chmod
命令并不是默认可用的。你可以使用 PowerShell 的 icacls
命令来更改文件权限。以下是如何在 PowerShell 中更改文件权限的步骤:
-
打开 PowerShell: 以管理员身份运行 PowerShell。
-
更改文件权限: 使用
icacls
命令来限制文件的权限。以下命令将只允许当前用户读取和写入文件:icacls "D:\Download\id_ed25519_team28" /inheritance:r
icacls "D:\Download\id_ed25519_team28" /grant:r "$($env:USERNAME):(R,W)"这些命令的解释:
/inheritance:r
:移除继承的权限。/grant:r "$($env:USERNAME):(R,W)"
:授予当前用户读取和写入权限。
-
验证权限: 你可以使用以下命令来检查文件的权限:
icacls "D:\Download\id_ed25519_team28"
这将显示文件的当前权限设置。
3. 使用 SSH 私钥文件连接到远程服务器
使用以下命令连接到远程服务器:
ssh username@remote_server_ip_or_domain -i /path/to/your/private_key.pem
/path/to/your/private_key.pem
:SSH 私钥文件的路径。username
:远程服务器的用户名。remote_server_ip_or_domain
:远程服务器的 IP 地址或域名。
例如,如果你的私钥文件路径是 ~/.ssh/id_rsa
,用户名是 user
,远程服务器的 IP 地址是 192.168.1.100
,则命令如下:
ssh user@192.168.1.100 -i ~/.ssh/id_rsa
4. 验证连接
在执行上述命令后,如果一切正常,你将被连接到远程服务器。如果这是你第一次连接到该服务器,你可能会看到一个类似下面的提示:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入 yes
并按回车键继续。之后,你应该会看到远程服务器的终端提示符,表示你已经成功连接。
常见问题
1. 权限被拒绝(公钥)
如果你看到类似 Permission denied (publickey)
的错误信息,可能是以下原因:
- 私钥文件路径不正确。
- 私钥文件权限不正确。
- 远程服务器未配置正确的公钥。
请检查上述内容并确保配置正确。