ssh-keygen

 

ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer systems used to establish secure shell sessions between remote computers over insecure networks, through the use of various cryptographic techniques. The ssh-keygen utility is used to generate, manage, and convert authentication keys.ssh-keygen is able to generate a key using one of three different digital signature algorithms.With the help of the ssh-keygen tool, a user can create passphrase keys for any of these key types (to provide for unattended operation, the passphrase can be left empty, at increased risk).

These keys differ from keys used by the related tool GNU Privacy Guard.

Key formats supported

Originally, with SSH protocol version 1 (now deprecated) only the RSA algorithm was supported. As of 2016, RSA is still considered strong, but the recommended key length has increased over time.

The SSH protocol version 2 additionally introduced support for the DSA algorithm. As the DSA algorithm has ties to the American National Security Agency (NSA), aspects of its security have been called into question by Edward Snowden‘s global surveillance disclosures, particularly in light of the Bullrun decryption program.

Subsequently, OpenSSH added support for a third digital signature algorithm, ECDSA (this key format no longer uses the previous PEM file format for private keys, nor does it depend upon the OpenSSL library to provide the cryptographic implementation). In particular, ECDSA is supported using Curve25519, originally developed by independent cryptography researcher Daniel J. Bernstein.

ssh-keygen command syntax

The syntax of the ssh-keygen file is as follows:

ssh-keygen [options]

Some of the important options of ssh-keygen command are as follows:

ssh-keygen command options description
-b bits Specifies the number of bits in the key to create. The minimum bit length is 768 bits and the default length is 2048 bits.
-C comment Provides new comment.
-p Requests changing the passphrase of a private key file instead of creating a new private key.
-t Specifies the type of key to create.
-o Use the new OpenSSH format.
-q quiets ssh-keygen. It is used by the /etc/rc file while creating a new key.
-N Provides a new Passphrase.
-F (or -B) For ssh-keygen2, dumps the key’s fingerprint in Bubble Babble format

Files used by the ssh-keygen utility

The ssh-keygen utility uses various files for storing public and private keys. The files used by ssh-keygen utility are as follows:

  • $HOME/.ssh/identity: The $HOME/.ssh/identity file contains the RSA private key when using the SSH protocol version 1.
  • $HOME/.ssh/identity.pub: The $HOME/.ssh/identity.pub file contains the RSA public key for authentication when you are using the SSH protocol version 1. A user should copy its contents in the $HOME/.ssh/authorized_keys file of the remote system where a user wants to log in using RSA authentication.
  • $HOME/.ssh/id_dsa: The $HOME/.ssh/id_dsa file contains the protocol version 2 DSA authentication identity of the user.
  • $HOME/.ssh/id_dsa.pub: The $HOME/.ssh/id_dsa.pub file contains the DSA public key for authentication when you are using the SSH protocol version 2. A user should copy its contents in the $HOME/.ssh/authorized_keys file of the remote system where a user wants to log in using DSA authentication.
  • $HOME/.ssh/id_rsa: The $HOME/.ssh/id_rsa file contains the protocol version 2 RSA authentication identity of the user. This file should not be readable by anyone but the user.
  • $HOME/.ssh/id_rsa.pub: The $HOME/.ssh/id_rsa.pub file contains the protocol version 2 RSA public key for authentication. The contents of this file should be added to $HOME/.ssh/authorized_keys on all computers where a user wishes to log in using public key authentication.

External links

本地向服务器发起TCP连接请求,能指定网卡么?

(1) 本地向服务器发起TCP连接请求,能指定网卡么,如果当前计算机有多快网卡
http://bbs.csdn.net/topics/390935956
不能。

TCP/IP协议族其最成功的特性之一,就是其分层模型。
传输层可以不关心甚至不知道网络接口层使用的是什么硬件。
可能是 EtherNet、FDDI、ATM、X.25、ISDN等。

所以说,TCP只关心IP,Mac和TCP没有直接的关系,更谈不上绑定。
当然,如果你多块网卡的IP地址经过合理的配置,有不同的网段,也可起到区分的作用。

(2) 在程序中创建一个套接字,使其通过指定网卡连接并发送数据(TCP),如何实现?
http://bbs.csdn.net/topics/370203769
你无法指定使用哪块网卡来发送,以上诸位说的bind函数只是服务端为了客户端找到自己,在网络上公布自己而已。举个例子,假如你的网卡是A和B两块:A的IP 192.168.1.3 B的IP 10.0.0.4
通过哪块网卡来发送怎么判断呢?假如你要发送给一个IP为192.168.1.6的机器,无论你绑定的IP是什么,都会通过A网卡发送,因为它只和你的A网卡连接,不存在通过哪个网卡发送的问题。同样道理,你要发送给10.0.0.8的一台机器,那么它一定是通过B网卡发送的。这主要取决于客户机和你的哪块网卡组成了网络,你调用send函数时,操作系统底层自动选择同一网络中的网卡来发送,不存在应用层指定的问题。

组播地址基础详解

组播地址基础详解

IANA已经把D类地址空间分配给了IP组播地址.
D类空间的地址在其第一个字节的前4位,用二进制值1110来识别.
所以组播地址的范围是:
224.0.0.0到239.255.255.255.
D类地址: www.2cto.com
字节1 字节2 字节3 字节4
1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx

clip_image002

原理是这样的:
该空间的地址用二进制表示并且第一个八位数的前4位用1110表示.
1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
下面给出一些常用的局部链接的组播地址:
224.0.0.1 所有主机
224.0.0.2 所有组播路由器
224.0.0.3 没有分配
224.0.0.4 DVMRP路由器
224.0.0.5 OSPF路由器
224.0.0.6 OSPF 指定路由器(DR)
224.0.0.7 ST路由器
224.0.0.8 ST主机
224.0.0.9 RIP2路由器
224.0.0.10 IGRP路由器
224.0.0.12 DHCP服务器/中继代理
224.0.0.13 所有的PIM路由器
224.0.0.15 所有CBT路由器
224.0.0.18 VRRP
224.0.0.19 到 224.0.0.255是可以使用的。其他的建议保留以便网络中的设备或者主机使用.
这里还要说明的是,实际上保留的地址空间远远不止那些.
IANA还预留了239.0.0.0–239.255.255.255的地址范围作为管理范围地址,以供在私有的组播领域内使用.
组播MAC地址
xxxxxx11.xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
MAC地址我们都知道是48位的,在第一个8位中的最后2位如果置为1的话,那么就规定为是组播的MAC地址. www.2cto.com
以太网IP与组播MAC地址映射

clip_image004

由于IPv4组播地址的高4位是1110,代表组播标识,而低28位中只有23位被映射到IPv4组播MAC地址,这样IPv4组播地址中就有5位信息丢失。于是,就有32个IPv4组播地址映射到了同一个IPv4组播MAC地址上,因此在二层处理过程中,设备可能要接收一些本IPv4组播组以外的组播数据,而这些多余的组播数据就需要设备的上层进行过滤了。
NOTES:
可以看到,三层组播IP是以 1110 开始的。
范围从1110 0000 – 1110 1111 ,也就是224到239.
那么这里组播MAC是以0x010005E开始的.
最后可以看到,三层组播IP,224-239开头的,最后映射到二层组播MAC,都变成一个了.
说到这里,就会产生一个问题。
MAC地址映射的性能影响:
因为第三层IP组播地址信息的全部28位比特不能映射进23bit可用的mac地址空间,所以在映射的过程中,丢失了5bit的地址信息,这会导致组播地址映射到第二层IEEE MAC地址时,会有2的5次方,或者32:1的地址不明确.这也就意味着,每一个IEEE IP多播MAC地址可以表示32个IP地址组播地址.
MAC和IP的后23位一一对应,后第24位可以是0或1,这一位没有对应上。每一个2层地址可以映射成32个3层地址。
0100.5e01.0101
0100.5e可以映射成IP地址的第1个字节:224-239
01.0101可以映射成IP地址的后3个字节:1.1.1和129.1.1
这个MAC地址可以映射成:224.1.1.1、224.129.1.1、225.1.1.1、225.129.1.1….239.129.1.1这么32个IP地址。
记得一前段时间,客户有一个这样的需求。
Multicast – when issuing command “multicast mac-address 01:00:5e:01:01:01 vlan 30 interface ethernet 0/0/1” – we state 239.1.1.1 as MAC address – they what to state it as IP address. www.2cto.com
其实,这个需求就是,在二层交换机上面,客户不想用48bit的二层组播MAC地址标示,觉得太麻烦,这也可以理解,很多客户根本就记不住MAC地址前面25bit是以0x01005E开头的,更分不清楚后面的对应关系了。所以客户说,想要在二层交换机上面写三层的组播IP地址,让系统自动的翻译成二层的组播MAC.
这里通过二层组播的mac原理,已经知道了,这样会遇到一个很大的问题就是一个MAC可以同时对应32个组播IP.
所以最后软件的实现方式是:不管客户写什么IP开头,比如说224/239/225/226.那么最终映射到系统的命令行会自动变成224.这里会给客户一个提醒的命令行,说明一下这个问题的情况,然后最终系统识别到的还是01005E的前25位.
达到了客户的要求,但是也需要把这个问题给客户讲清楚.

作者 hny2000

参见:http://www.2cto.com/net/201206/136601.html

VLAN是什么意思?

VLAN(Virtual Local Area Network)又称虚拟局域网,是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络。一个VLAN组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入到一个逻辑子网中。

组建VLAN的条件

VLAN是建立在物理网络基础上的一种逻辑子网,因此建立VLAN需要相应的支持VLAN技术的网络设备。当网络中的不同VLAN间进行相互通信时,需要路由的支持,这时就需要增加路由设备——要实现路由功能,既可采用路由器,也可采用三层交换机来完成。

划分VLAN的基本策略

从技术角度讲,VLAN的划分可依据不同原则,一般有以下三种划分方法:

1、基于端口的VLAN划分

这种划分是把一个或多个交换机上的几个端口划分一个逻辑组,这是最简单、最有效的划分方法。该方法只需网络管理员对网络设备的交换端口进行重新分配即可,不用考虑该端口所连接的设备。

2、基于MAC地址的VLAN划分

MAC地址其实就是指网卡的标识符,每一块网卡的MAC地址都是惟一且固化在网卡上的。MAC地址由12位16进制数表示,前8位为厂商标识,后4位为网卡标识。网络管理员可按MAC地址把一些站点划分为一个逻辑子网。

3、基于路由的VLAN划分

路由协议工作在网络层,相应的工作设备有路由器和路由交换机(即三层交换机)。该方式允许一个VLAN跨越多个交换机,或一个端口位于多个VLAN中。

就目前来说,对于VLAN的划分主要采取上述第1、3种方式,第2种方式为辅助性的方案。

使用VLAN优点

使用VLAN具有以下优点:

1、控制广播风暴

一个VLAN就是一个逻辑广播域,通过对VLAN的创建,隔离了广播,缩小了广播范围,可以控制广播风暴的产生。

2、提高网络整体安全性

通过路由访问列表和MAC地址分配等VLAN划分原则,可以控制用户访问权限和逻辑网段大小,将不同用户群划分在不同VLAN,从而提高交换式网络的整体性能和安全性。

3、网络管理简单、直观

对于交换式以太网,如果对某些用户重新进行网段分配,需要网络管理员对网络系统的物理结构重新进行调整,甚至需要追加网络设备,增大网络管理的工作量。而对于采用VLAN技术的网络来说,一个VLAN可以根据部门职能、对象组或者应用将不同地理位置的网络用户划分为一个逻辑网段。在不改动网络物理连接的情况下可以任意地将工作站在工作组或子网之间移动。利用虚拟网络技术,大大减轻了网络管理和维护工作的负担,降低了网络维护费用。在一个交换网络中,VLAN提供了网段和机构的弹性组合机制。

三层交换技术

传统的路由器在网络中有路由转发、防火墙、隔离广播等作用,而在一个划分了VLAN以后的网络中,逻辑上划分的不同网段之间通信仍然要通过路由器转发。由于在局域网上,不同VLAN之间的通信数据量是很大的,这样,如果路由器要对每一个数据包都路由一次,随着网络上数据量的不断增大,路由器将不堪重负,路由器将成为整个网络运行的瓶颈。

在这种情况下,出现了第三层交换技术,它是将路由技术与交换技术合二为一的技术。三层交换机在对第一个数据流进行路由后,会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率,消除了路由器可能产生的网络瓶颈问题。可见,三层交换机集路由与交换于一身,在交换机内部实现了路由,提高了网络的整体性能。

在以三层交换机为核心的千兆网络中,为保证不同职能部门管理的方便性和安全性以及整个网络运行的稳定性,可采用VLAN技术进行虚拟网络划分。VLAN子网隔离了广播风暴,对一些重要部门实施了安全保护;且当某一部门物理位置发生变化时,只需对交换机进行设置,就可以实现网络的重组,非常方便、快捷,同时节约了成本。

参见:百度知道