telnet:远程登录协议

采用c/s架构,全程使用明文。

应用层协议,工作在tcp 23端口。

S:telnet服务器

C:telnet客户端



ssh:Secure Shell 

应用层协议,工作在tpc 22端口。

通信过程及认证过程都是加密的,基于主机认证。

用户认证过程加密

数据传输过程加密


版本:

ssl v1

ssl v2


主机密钥hostkey:

非对称加密

secert key

public key


OpenSSH:是ssh免费开源的实现。

常见的ssh工具:

客户端:

linux:ssh

windowns:putty,SecureCRT,Xmanager...


服务器端:

linux:sshd

windows:暂无

配置文件:

服务器端:sshd

配置文件:/etc/ssh/sshd_config

使用man sshd_config可以查看配置文件的详情。


客户端:ssh

配置文件:/etc/ssh/ssh_config


#ssh [OPTION] [USERNAME@]HOST 'COMMAND'

[OPTION]

-l USERNAME HOST

-X 允许X11的转发。即允许使用图形模式下的相关命令。远程有没有x服务都可以,本地有就行了。 

-Y 允许信任的X11的转发。

-p PORT 指定端口


从服务器端接受的主机密钥存放在USERNAME的家目录下的文件中:

/home/USERNAME/.ssh/kown_hosts



#ssh-keygen [OPTION] 密钥生成器

[OPTION]

-t TYPE 指定加密方式,常用的为rsa|dsa

-f KEYFILE 指定私钥文件。

-P 'PASSWORD' 指定旧的加密私钥的密码,''表示空密码。

-N 'PASSWORD' 指定新的密码。

-p 改变私钥文件的密码而不重建私钥。程序将提示输入私钥文件名、旧密码、两次输入新密码。


生成的密钥存放在:

/home/USERNAME/.ssh/id_rsa 生成的私钥

/home/USERNAME/.ssh/id_rsa.pub 生成的公钥


注意:.ssh文件夹的权限只能为700!


生成的公钥将保存到远程主机USERNAME的家目录下的相关文件中,只能追加,不能覆盖:

/home/USERNAME/.ssh/authorized_keys

/home/USERNAME/.ssh/authorized_keys2


文件的权限为600!


例如:

#ssh-keygen -t rsa -f /root/.ssh/id_rsa -N''




#ssh-copy-id  [OPTION] [USERNAME@]HOST 将公钥传输至远程服务器

[OPTION]

-i PUBKEYFILE 指定公钥文件


例如:

#ssh-copy-id hadoop@192.168.1.23

#ssh-copy-id -i /root/.ssh/id_rsa.pub hadoop@192.168.1.23


#scp [OPTION] SRC DEST 跨主机安全复制工具。

[OPTION]

-r 递归

-a 全部


SRC

USERNAME@HOST:DIR

FILEDIR


DEST

USERNAME@HOST:DIR

FILEDIR



例如:

#scp /root/busybox.tar.gz hadoop@192.168.1.23:/home/hadoop/ 

#scp hadoop@192.168.1.23:/home/hadoop/busybox.tar.gz /root/




基于密钥的认证实例(单向信任):

192.168.1.23为服务器,有用户名为hadoop。

192.168.1.22为客户端


1.在客户端上生成一对密钥,

#ssh-keygen -t rsa -f .ssh/id_rsa -N''

#ls -a .ssh/

id_rsa id_rsa.pub


2.将公钥传输至服务器端hadoop的家目录下,并将其追加到/home/hadoop/.ssh/authorized_key文件中

#scp /root/.ssh/id_rsa.pub hadoop@192.168.1.23:/home/hadoop/rsa.pub.clinet

#ssh hadoop@192.168.1.23 'cat home/hadoop/rsa.pub.clinet >> /home/hadoop/.ssh/authroized_keys'


#ssh-copy-id hadoop@192.168.1.23


3.测试登陆

#ssh hadoop@192.168.1.23

$



ssh日常使用注意要点:

1.密码应该经常更换并保持健壮性

2.使用非默认端口

3.限制登陆地址

4.禁止管理员直接登陆

5.仅允许有线用户登陆

6.使用基于密钥的认证

7.不要使用ssl v1


#netstat -tln 查看tcp协议中处于listening状态下的端口,并以数字显示而不是以协议名称。




dropbear:嵌入式系统专用的ssh服务器端和客户端工具

服务器端:dropbear

密钥生成工具:

dropbearkey


客户端:dbclient


dropbear默认使用nsswitch进行名称解析


nsswitch所需文件:

/etc/nsswitch.conf

/lib/libnss_file*

/usr/lib/libnss3.so

/usr/lib/libnss.file*



dropbear或在用户登录时检查其默认shell是否为当前系统的安全shell。安全shell在/etc/shells内进行定义。



主机密钥默认位置:

/etc/dropbear/

dorpbear_rsa_host_key

长度可变,是8的倍数即可,默认为1024

dorpbear_dss_host_key

长度固定,默认为1024


#dropbearkey [OPTION]

-t TYPE rsa|dsa

-f KEYFILE

-s SIZE