首页 > 代码库 > openssh

openssh

Openssh:

ssh:secure shell,protocol,22/tcp 安全的远程登录

openssh:ssh协议的开源实现

dropbear:另一个开源实现

serverc/s架构随时监听一个端口(22) client基于tcp协议安全远程登录

telnet早期用telnet,也是c/s架构监听23号端口,所有信息明文发送,不安全

]# yum -y install telnet-server

安装telnetserver端,启用telnet#chkconfig telnet on #service xinetd  restart

xinetd超级守护进程,瞬时守护进程代为监听23号端口

telnet为明文,禁止管理员直接登录

SSH协议版本

v1: 基于CRC-32做MAC,不安全;man-in-middle

v2:双方主机协议选择安全的MAC方式

基于DH算法做密钥交换,基于RSA或DSA算法实现身份认证;

 

两种方式的用户登录认证:1password、2key

在tcp三次握手后,server会发送一个主机秘钥公钥到client,然后基于这个公钥进行协商

1、客户端连接上服务器之后,服务器把自己的公钥传给客户端

2、客户端输入服务器密码通过公钥加密之后传给服务器

3、服务器根据自己的私钥解密登录密码,如果正确那么就让客户端登录

client在本地生成一对私钥和公钥,将公钥发送到server端   ./ssh/known_hosts

1、客户端生成RSA公钥和私钥

2、客户端将自己的公钥存放到服务器

3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端

4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器

5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。

openssh其实就是ssh协议的实现

C/S

C: ssh, scp, sftp

Windows客户端:

xshell, putty, securecrt, sshsecureshellclient

S: sshd

客户端组件:

ssh, 配置文件:/etc/ssh/ssh_config

服务端:

sshd,配置文件:/etc/ssh/sshd_config

 

基于key方式登录

  1. client生成一对指定加密方式秘钥ssh -t rsa [-P ‘‘] [-f     "~/.ssh/id_rsa"]

$ ssh-keygen -t rsa -C "localhost"

Generating public/private rsa key pair.

Enter file in which to save the key(/Users/simonwang/.ssh/id_rsa): 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /Users/simonwang/.ssh/id_rsa.

Your public key has been saved in /Users/simonwang/.ssh/id_rsa.pub.

The key fingerprint is:

保存在

ls ~/.ssh/

config id_rsa id_rsa.pub known_hosts

  1. pubkey传至server

ssh-copy-id[-i [identity_file]]

$ ssh-copy-id -i ~/.ssh/

config       id_rsa       id_rsa.pub  known_hosts  

echo:.ssh simonwang$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.5.77

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:"/Users/simonwang/.ssh/id_rsa.pub"

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), tofilter out any that are already installed

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if youare prompted now it is to install the new keys

root@192.168.5.77‘s password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh‘root@192.168.5.77‘"

and check to make sure that only the key(s) you wanted were added.

 

PS:做集群时经常要用到这种认证方式

windows xshell新建生成秘钥

1、不要使用默认端口;

2、禁止使用protocol version 1;

3、限制可登录用户;

4、设定空闲会话超时时长;

5、利用防火墙设置ssh访问策略;

6、仅监听特定的IP地址;

7、基于口令认证时,使用强密码策略;

# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs

8、使用基于密钥的认证;

9、禁止使用空密码;

10、禁止root用户直接登录;

11、限制ssh的访问频度和并发在线数;

12、做好日志,经常分析;

 

 dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

dropbear -p [ip:]port -F -E

 

 

本文出自 “勤能补拙” 博客,请务必保留此出处http://echoroot.blog.51cto.com/11804540/1946876

openssh