首页 > 代码库 > openssh
openssh
Openssh:
ssh:secure shell,protocol,22/tcp 安全的远程登录
openssh:ssh协议的开源实现
dropbear:另一个开源实现
server端c/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方式登录
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
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