/images/avatar.png

半生戎码

Linux使用ssh-kengen生成公私钥和免密登录

详细命令

ssh-keygen \
    -t rsa \
    -m PEM \
    -b 4096 \
    -C "user@server" \
    -f /home/username/.ssh/keys/privatekey \
    -N passphrase

命令释义

  1. ssh-keygen = 用于创建密钥的程序
  2. -m PEM = 将密钥的格式设为 PEM
  3. -t rsa = 要创建的密钥类型,本例中为 RSA 格式
  4. -b 4096 = 密钥的位数,本例中为 4096
  5. -C “user@server” = 追加到公钥文件末尾以便于识别的注释。 通常以电子邮件地址用作注释,但也可以使用任何最适合你基础结构的事物。
  6. -f /home/username/.ssh/keys/privatekey = 私钥文件的文件名(如果选择不使用默认名称)。 追加了 .pub 的相应公钥文件在相同目录中生成。 该目录必须存在。
  7. -N passphrase = 用于访问私钥文件的其他密码。

使用示例:

username@hostname:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):   // 这里输入要生成的文件名
Created directory '/home/username/.ssh'.                            // 这里输入密码
Enter passphrase (empty for no passphrase):                         // 这里重复输入密码
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:LIGNrf7jteWJtB6quaJgOwT4yLkbyIBhCTUOCW58Em0 /home/username/@hostname
The key's randomart image is:
+---[RSA 2048]----+
|=++              |
|=ooE =           |
|oBo.o +          |
|*.o  . o         |
|=o. . . S        |
|=+..   .         |
|++. .   + .      |
|oo+  o.+ B .     |
|.+o.+++o= o      |
+----[SHA256]-----+

免密登录

  1. 复制 A 机公钥到 B 机/home/username/.ssh 目录下的 authorized_keys 文件里。
scp /home/username/.ssh/id_rsa.pub username@192.168.1.100:/home/username/.ssh/authorized_keys
  1. B 机中给 authorized_keys 文件 600 权限
chmod 600 authorized_keys
  1. 、A 机登录 B 机
ssh 192.168.1.100

消息队列选型

维度 Kafka RabbitMQ ZeroMQ RocketMQ ActiveMQ
资料文档 中等
开发语言 Scala Erlang C Java Java
支持的协议 自定义基于 TCP AMQP TCP、UDP 自定义 OpenWire、STOMP、REST、XMPP、AMQP
消息存储 内存、磁盘、数据库。支持大量堆积。 内存、磁盘。支持少量堆积。 消息发送端的内存或者磁盘中。不支持持久化。 磁盘。支持大量堆积。 内存、磁盘、数据库。支持少量堆积。
消息事务 支持 支持 不支持 支持 支持
负载均衡 支持 支持不好 不支持 支持 支持(基于 zookeeper)
集群方式 支持 支持简单集群 不支持 支持 支持
管理界面 一般 有,非自带 一般
可用性 非常高(分布式) 高(主从) 非常高(分布式) 高(主从)
消息重复 支持 at least once、at most once 支持 at least once、at most once 有重传,没有持久化 支持 at least once 支持 at least once
吞吐量 TPS 极大 比较大 极大 比较大
消费推拉模式
订阅形式和消息分发 基于 topic 及按 topic 正则匹配的发布订阅模式 direct、topic、Headers 和 fanout。 点对点(p2p) 基于 topic/messageTag 及按消息类型、属性正则匹配的发布订阅 点对点(p2p)、广播(发布-订阅)
顺序消息 支持 不支持 不支持 支持 不支持
消息确认 支持 支持 支持 支持 支持
消息回溯 支持指定分区 offset 位置的回溯 不支持 不支持 支持指定时间点的回溯 不支持
消息重试 不支持,但是可以实现 不支持,可以利用消息确认机制实现 不支持 支持 不支持
并发度 极高
延迟队列 不支持 支持 不支持 支持 不支持
死信队列 不支持 支持 不支持 支持 不支持
优先级队列 不支持 支持 不支持 不支持 不支持

参考

https://cloud.tencent.com/developer/article/1449951