SSH -i的用法

缘起

今天使用ssh -i指定私钥时遇到以下错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/ken/.ssh/my.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/eric/.ssh/my.pem": bad permissions

查了一下,原因是私钥文件的权限问题。详细解释如下。

ssh -i 参数用于指定一个私钥文件,以便在通过 SSH 连接到远程服务器时进行身份验证。这个参数特别适用于使用密钥对(公钥和私钥)进行身份验证的情况,而不是使用密码。

以下是 ssh -i 参数的基本用法:

ssh -i <私钥文件路径> <用户名>@<远程服务器地址>

示例

假设你有一个私钥文件 my_private_key,并且你想以用户 john 的身份连接到远程服务器 example.com,你可以这样使用 ssh -i 参数:

ssh -i /path/to/my_private_key john@example.com

详细说明

  • 私钥文件路径:这是你本地机器上私钥文件的完整路径。私钥文件通常是以 .pem.ppk 或没有扩展名的形式存在。
  • 用户名:这是你在远程服务器上的用户名。
  • 远程服务器地址:这是远程服务器的 IP 地址或域名。

注意事项

  1. 权限:私钥文件应该有适当的权限设置,通常是 600400,以确保只有你(文件的所有者)可以读取它。你可以使用以下命令设置权限:

    chmod 600 /path/to/my_private_key
    
  2. 公钥配置:在连接之前,确保你的公钥已经添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

  3. 默认私钥:如果你没有指定 -i 参数,SSH 会尝试使用默认的私钥文件,通常是 ~/.ssh/id_rsa~/.ssh/id_dsa

高级用法

如果你有多个私钥文件,并且需要根据不同的服务器使用不同的私钥,你可以使用 -i 参数多次指定不同的私钥文件。例如:

ssh -i /path/to/key1 -i /path/to/key2 user@example.com

在这种情况下,SSH 会尝试使用第一个私钥文件进行身份验证,如果失败,则会尝试使用第二个私钥文件。

通过使用 ssh -i 参数,你可以更灵活地管理你的 SSH 连接,并提高安全性,因为使用密钥对进行身份验证通常比使用密码更安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值