ssh 多用户免密码登录

多用户密钥

SSH 密钥 认证配置 挺简单的,就是ssh-keygen生成密钥公钥对。然后让服务器端放好公钥,本地有密钥就能实现认证。同时这对密钥在兼容ssh协议下都能用的。

LocalHost:L
ServerHost:S
ssh-keygen可以在L或S上运行,不过最终是让S上有公钥,L上有密钥。
推荐在L上运行ssh-keygen,然后用ssh-copy-id把公钥传到S上,这样有几个好处:
   1. 公钥在网络上传输相对安全。
   2. 使用ssh-copy-id会自动把公钥放到S上的$HOME/.ssh/authorized_keys 并且保证权限OK。

这里有个问题:
如果有两台S,这样本地就会有两份密钥,这样如何存放呢?
开始想到的方法:使用一套公钥密钥。使用ssh-copy-id到不同的server,同时维护config方便登录。 (相对不太安全,下面是我刚了解到的)
{还想到个方法是两台机器使用不同类型的密钥,rsa和dsa,这样就用两个密钥文件了,但是如果和很多台机器想不同密钥呢? 密钥不像公钥那样放在同一个文件里的吧?
[Ref ~/.ssh/id_rsa and ~/.ssh/id_dsa for protocol version 2 from man ssh]}

怎么在登录不同服务器使用不同的密钥呢?man ssh就看到有个 -i 参数可以指定不同的密钥。我习惯.ssh/config里放服务器信息,那对应的密钥信息怎么写呢 man ssh_config发现有个IdentityFile配置项。

现在要设置HostA和HostB的认证

ssh-keygen //设置密钥名 id_rsa.HostA 自动生成id_rsa.HostA .pub的公钥 
ssh-keygen //设置密钥名 id_rsa.HostB 自动生成id_rsa.HostB .pub的公钥 

ssh-copy-id -i id_rsa.HostA.pub useratA@HostA.domain.net 
ssh-copy-id -i id_rsa.HostB.pub useratB@HostB.domain.net

5.本地.ssh/config文件
Host HostA
    HostName HostA.domain.net
    User useratA
    IdentityFile  ~/.ssh/id_rsa.HostA

Host HostB
    HostName HostB.domain.net
    User useratB
    IdentityFile  ~/.ssh/id_rsa.HostB 

然后就可以直接ssh HostA 或者HostB使用不同密钥对登录了。

********************************************************************************************************************

多用户公钥

如果服务器的目录中没有authorized_keys 文件,只需要将id_rsa.pub公钥文件的名称更改为authorized_keys,如果已经有了authorized_keys文件,使用 “>>”重定向符将用户公钥追加到authorized_keys文件中

cat id_rsa.pub >> ~/.ssh/authorized_keys

或者

 ssh-copy-id [-i [identity_file]] [user@]machine




  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值