简介:
ssh 全称 | Secure Shell Protocol | |
默认端口 | 默认22 | 服务处于监听状态,用于远程链接,早期使用telnet; |
主要功能 | 远程连机和sftp 功能 | |
版本 | 两个不兼容的ssh协议版本,分别是1.x和2.x;服务端默认是2.x | ssh2同时支持RSA和DSA密钥,但是ssh1仅仅支持RSA密钥; |
ssh服务端软件 | OpenSSH(负责加密)和客户端SSH组成; | |
工作机制 | 本地的ssh客户端发送一个链接请求到远程的ssh服务端,服务端检查链接的客户端发送的数据包和ip地址,如果确认合法,就会发送密钥给ssh的客户端,此时,客户端本地的再将密钥发送给服务端,自此链接建立。 | 备注:连不上的情况 防火墙 端口是否修改 客户端线路有问题 |
ssh1.x的整个联机加密步骤:
#每一台ssh服务主机都可以使用RSA加密方式来产生一个1024-bit的RSAkey,这个RSA的加密方式就是用来生产公钥和私钥的算法之一。
1、当ssh服务启动时,就会产生一个768-bit 的临时公钥:
grep -i serverkey /etc/ssh/sshd_config
#ServerKeyBits 1024
注意(centos 是768)
2、当client端SSH联机请求传送过来时,Server就会将这个1024-bit的公钥传给Client端,此时Client会将此公钥与先前存储的公钥进行比对,看是否标准。判断标准是:Client 端联机用户目录下~/.ssh/known_hosts文件的内容(linux客户端)
在Client端接受到这个1024-bit的Server后,Client本地也会随机产生一个246-bit的私钥(Private key或hostkey),并且以加密的方式(具体的加密算法由客户端在服务器提供的所有可用算法中选择,默认为3DES算法)将Server key和host key 整合成一对完整的key pair,并将这个keypair在传给server。
3、当客户端完成后,Server与Client端在这次的联机中,就以这一对1024-bit的keypair进行数据传输
ssh version2 多加了一个确认联机正确性的Diffie-Hellman机制,每次数据传输中,server都会以该机制检查数据的来源是否正确,这样,避免联机过程中被插入恶意程序代码的问题,是比较安全的。
ssh服务的认证类型
ssh服务主要提供两种级别的安全验证:
基于口令的安全验证 : ssh -p52113 kong@10.0.0.231
基于密钥的安全认证 :cat ~/.ssh/known_hosts
[10.10.70.11]:52113 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtjcHQwK/He9lYMFkZm9VhJEUOyby5t6EafXguptVd71TKJJ+SLGebJq3gX8BCLE7VLxDQDPZ/v57AmHFg72Vh4FTbDnhgcD0rgFAwShRIv+R3vCiZTbTW3tsjuIpEC6VlMaTxe5mfGk9hC7X0S2vC3eLV11kJTsNztlhjkikUTwu9qJ9jKL3uVVe6L8+u7Q3pjL1ORwKxqlNMs5lDoZ4V3PP3MfC2PNcrr1IIhJZCaRKmHVc0v2ba2yGnvWzZcd/KRVirlSixyL7Ibka07NsShVrBROkiVcWDf9Yc+xI5D9WkBJncgJEetUQ07bRUZsC/LYUg8On6XcU0lhYw1Al2w==
安装:
#默认安装就已包含ssh服务所需要的软件OpenSSL和OpenSSH
1、开机自启动;
2、服务端文件: /etc/ssh/sshd_config
#服务端包含两个服务功能ssh远程链接。SFTP服务
客户端文件:/etc/ssh/ssh_config
#ssh客户端:包含ssh以及像scp(远程拷贝)、slogin(远程登录)、sftp(安全FTP文件传输)等应用程序
ssh密钥生成 :
工具:ssh-keygen #是一个脚本
#密钥生成的时候尽量不使用root用户
A、
ssh-keygen -t dsa (指定算法)
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 指定地址 默认是家目录
Enter passphrase (empty for no passphrase): 输入密码 不给
Enter same passphrase again: 回车到底
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4b:73:39:13:6d:f6:9d:e2:2f:5e:1c:23:37:ea:37:94 root@moban2
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| |
| . |
| . + |
| = . ..|
| S = o.*o|
| . + o. *E+|
| . o.o |
| ..oo |
| .oo..|
+-----------------+
# -t 指定算法 默认rsa ; dsa 一般用于数字签名 (一般使用dsa)
B、检查
ls ~/.ssh/
id_dsa id_dsa.pub
#id_dsa(私钥 :钥匙) 权限 :小 分发服务器: 保留本地
id_dsa.pub(公钥:锁)
C、进行公钥分发 :
工具:ssh-copy-id
ssh-copy-id -i id_dsa.pub "-p 52113 kong@10.10.70.12"
#ssh-copy-id 是一个脚本;默认端口是22 ;如果不是默认需要使用-p指定 ,且需要使用双引号;只能分发公钥;
范例: ssh-copy-id -i id_dsa.pub "-p 52113 kong@10.0.0.231"
kong@10.0.0.231's password:
Now try logging into the machine, with "ssh '-p 52113 kong@10.0.0.231'", and check in:
.ssh/authorized_keys 成功了
to make sure we haven't added extra keys that you weren't expecting.
D、检查分发主机:
ll ~/.ssh/authorized_keys
-rw------- 1 root root 596 Jan 30 21:51 /root/.ssh/authorized_keys
验证:
ssh 10.10.70.12
Last login: Fri Jan 30 22:50:07 2015 from 10.10.70.11
配置文件:
#sshd_config服务端;ssh_config客户端
网友详解:http://bbs.linuxtone.org/thread-5487-1-1.html
Port 52113 #→ssh连接默认的端口修改
PermitRootLogin no #→root禁止远程登陆。
PermitEmptyPasswords no #→禁止空密码登陆
UseDNS no #→不使用DNS
GSSAPIAuthentication no #一般为NO
ssh 连接慢 排查:
1、在ssh服务端上更改/etc/ssh/sshd_config文件中的配置为如下内容:
UseDNS no
# GSSAPI options
GSSAPIAuthentication no
然后,执行/etc/init.d/sshd restart重启sshd进程使上述配置生效,在连接一般就不慢了。
2、检查ssh服务端上/etc/hosts文件中,127.0.0.1对应的主机名是否和uname -n的结果一样,或者把本机ip和hostname(uname -n结果)加入到/etc/hosts里。
3、利用ssh -v的调试功能查找慢的原因。
转载于:https://blog.51cto.com/linuxboys/1610149