Linux - SSH 服务器信任关系配置

介绍

SSH(Secure Shell)是一项创建在应用层和传输层基础上得安全协议,为shell提供安全得传输和使用环境。具体协议以及服务相关知识不再赘述,下面主要介绍如何配置服务器之间的信任关系。以配置A免密登录到B为例



生成密钥

在A机器上通过ssh key-gen生成密钥

[root@suhw ~]# eval `ssh-agent -s`
[root@suhw ~]# ssh-keygen -t rsa

若不指定存放密钥的路径以及名字的话,会默认生成在当前用户家目录下的.ssh目录中生成一个私钥和一个公钥

[root@suhw ~]# ll /root/.ssh/
-rw------- 1 root root 2590 Jun 28 15:41 id_rsa
-rw-r--r-- 1 root root  563 Jun 28 15:41 id_rsa.pub

注:不可能每次生成密钥都覆盖掉之前的 ~/.ssh/id_rsa文件,建议在生成密钥第一步时指定文件名,便于区分管理



配置公钥

将生成的公钥追加到B机器的authorized_keys文件中

1、如果B机器.ssh目录下不存在authorized_keys文件,则通过touch命令新建,并将权限修改为600

[root@suhw ~]# cd ~/.ssh && touch authorized_keys && chmod 600 authorized_keys

2、将A机器生成的id_rsa.pub公钥追加到authorized_keys



相关配置

ssh的配置文件包含以下两个:

  • ~/.ssh/config:用户配置文件
  • /etc/ssh/ssh_config:系统配置文件

其中config配置中最常用的就是管理多组密钥对,对于多个服务器指定对应的密钥对,可以参考如下配置

HOST host1 # 关键词
    User root    # 登录用户名
    HostName 10.47.119.96 # 主机名
    IdentityFile /root/.ssh/host1_id_rsa # 私钥存储地址
HOST host2
    User root 
    HostName 10.47.119.97
    IdentityFile /root/.ssh/host2_id_rsa 

有了上面的配置,当我们在A机器上执行ssh host1时就会匹配到对应Host的配置,相当于执行了

ssh -i /root/.ssh/host1_id_rsa root@10.47.119.96

这样不论是ssh还是scp都会通过host匹配到对应的密钥文件进行连接,十分方便


配置项说明

  • Host:执行ssh命令时如果匹配到该配置,例如将HOST修改为kylin,在A机器上执行ssh kylin就相当于执行了ssh -i /data/suhw/.ssh/suhw_id_rsa root@10.44.103.165
  • HostName:主机地址
  • IdentityFile:指定读取的认证文件路径

其他具体参数可参考文章最后的链接



FAQ

1、若遇到报错Could not open a connection to your authentication agent.

先执行 eval`ssh-agent -s`



参考

  • https://deepzz.com/post/how-to-setup-ssh-config.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值