【ssh_config】SSH中配置多个private key

12 篇文章 0 订阅

当要使用多个不同的private key登录不同的主机时,我们可以在ssh命令里面用-i参数指定每次使用的private key文件。
但是这样做比较发麻而且容易出错,我们可以利用~/.ssh/config文件,在让ssh自动为我们决定应该使用哪个key。

基本方法

最简单的办法是配置多个IdentityFile,具体例子如下:

IdentityFile ~/.ssh/key1
IdentityFile ~/.ssh/key2
IdentityFile ~/.ssh/key3

默认情况下,我们是没有这个文件的,ssh会调用/etc/ssh/ssh_config里的配置。通常使用ssh-keygen生成的默认路径和文件名的key文件是被包含在里面的(比如id_rsaid_dsaid_ecdsa),这也就是我们不需要编写我们自己的config文件,ssh也可以正确加载私钥。
在使用ssh链接某台主机的时候,ssh会依次尝试使用其中各个key,直到找到合适的。

高级配置

高级一点的方法是在config文件里指定每个hostname使用的key文件。

# laptop
Host mylaptop # 任意自定义名称
HostName 192.168.0.120 # 主机地址
IdentityFile ~/.ssh/id_rsa # 私钥文件地址
Port 2222
User zhangsan

# cloud server
Host server
HostName www.my-server.com
IdentityFile ~/.ssh/id_rsa_cloud
User lisi

如上,我们不仅可以配置私钥文件,还可以针对各个主机所使用的配置端口号、用户名等信息,从而大大简化ssh的使用。它还支持更多的配置选项,大家有兴趣可以查看文档。
比如我们可以使用ssh mylaptop来替换ssh -p 2222 -i ~/.ssh/id_rsa zhangsan@192.168.0.120使用用户名zhangsan连接主机192.168.0.120的2222端口。

值得一提的是,我们不仅可以给每一个主机都配置一个key文件,还可以在最开始指定一些默认key文件,来应用于所有未知名的远程主机。
比如我有一个集群,和一台远程服务器,那么我们可以采用下面的配置文件来方便的登录所有这些机器。

IdentityFile ~/.ssh/id_rsa_cluster # 默认使用本秘钥

# cloud server
Host server
HostName www.my-server.com
IdentityFile ~/.ssh/id_rsa_cloud
User lisi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值